如何在 java- 越界异常中创建多行正则表达式
How to create a multiline regex in java- out of bounds exception
我正在尝试匹配以下 \b 之间的任何行(使用 Tika 中的 HTMLParser 提取)。整个文档中有几个这样的部分:
\par }{\b\f1\fs24\ul\insrsid14762702 Data}{\insrsid14762702
\par Catheter Depth:\tab N/A
\par
\par }{\b\f1\fs24\ul\insrsid14762702 Analysis Settings}{\insrsid14762702
\par Upright:\tab 11:06:12
\par Duration:\tab 08:53:13
\par Total:\tab 19:59:25
\par }{\b\f1\fs24\ul\insrsid14762702 Another section}{\insrsid14762702
\par Stuff
\par }{\b\f1\fs24\ul\insrsid14762702 And again}{\insrsid14762702
我的代码:
Pattern pattern = Pattern.compile("(\b\f1\fs24\ul\insrsid14762702.*)");
Matcher matcher = pattern.matcher(s);
ArrayList<String> arr= new ArrayList<String>();
while (matcher.find()) {
arr.add(matcher.group());
}
for(String name : arr){
System.out.println("HIHIHI"+ name);
}
这给了我
Illegal Unicode escape sequence near index 13
(\b\f1\fs24\ul\insrsid14762702.*)
^
前反斜杠也会发生这种情况 insrsid14762702
很公平,所以我四次逃避了麻烦的位
Pattern pattern = Pattern.compile("(\b\f1\fs24\\ul\\insrsid14762702.*)");
..我没有匹配项。
我怀疑我使用的是某种 unicode?符合正则表达式的情况,但似乎无法得到匹配的答案。-我知道我不会匹配模式之间的线条,但需要先理顺初始匹配。
尝试 Pattern.quote()
:
Pattern pattern = Pattern.compile("(" + Pattern.quote("\b\f1\fs24\ul\insrsid14762702") + ".*)")
我正在尝试匹配以下 \b 之间的任何行(使用 Tika 中的 HTMLParser 提取)。整个文档中有几个这样的部分:
\par }{\b\f1\fs24\ul\insrsid14762702 Data}{\insrsid14762702
\par Catheter Depth:\tab N/A
\par
\par }{\b\f1\fs24\ul\insrsid14762702 Analysis Settings}{\insrsid14762702
\par Upright:\tab 11:06:12
\par Duration:\tab 08:53:13
\par Total:\tab 19:59:25
\par }{\b\f1\fs24\ul\insrsid14762702 Another section}{\insrsid14762702
\par Stuff
\par }{\b\f1\fs24\ul\insrsid14762702 And again}{\insrsid14762702
我的代码:
Pattern pattern = Pattern.compile("(\b\f1\fs24\ul\insrsid14762702.*)");
Matcher matcher = pattern.matcher(s);
ArrayList<String> arr= new ArrayList<String>();
while (matcher.find()) {
arr.add(matcher.group());
}
for(String name : arr){
System.out.println("HIHIHI"+ name);
}
这给了我
Illegal Unicode escape sequence near index 13
(\b\f1\fs24\ul\insrsid14762702.*)
^
前反斜杠也会发生这种情况 insrsid14762702
很公平,所以我四次逃避了麻烦的位
Pattern pattern = Pattern.compile("(\b\f1\fs24\\ul\\insrsid14762702.*)");
..我没有匹配项。
我怀疑我使用的是某种 unicode?符合正则表达式的情况,但似乎无法得到匹配的答案。-我知道我不会匹配模式之间的线条,但需要先理顺初始匹配。
尝试 Pattern.quote()
:
Pattern pattern = Pattern.compile("(" + Pattern.quote("\b\f1\fs24\ul\insrsid14762702") + ".*)")