Java 图案/匹配器不使用换行符
我用Java中的模式和匹配器编写了一个程序,在一组字符之间生成一个字符串。我的代码当前为:Java 图案/匹配器不使用换行符,java,regex,Java,Regex,我用Java中的模式和匹配器编写了一个程序,在一组字符之间生成一个字符串。我的代码当前为: String trying = "75px;"; Pattern tryingPattern = Pattern.compile("(?<="+Pattern.quote(trying)+").*?(?=center)", Pattern.MULTILINE); Matcher tryingMatcher = tryingPattern.matcher(pageConten
String trying = "75px;";
Pattern tryingPattern = Pattern.compile("(?<="+Pattern.quote(trying)+").*?(?=center)", Pattern.MULTILINE);
Matcher tryingMatcher = tryingPattern.matcher(pageContentString);
while (tryingMatcher.find()) {
docketFile.write(tryingMatcher.group().toString());
}
String trying=“75px;”;
Pattern tryingPattern=Pattern.compile((?Pattern.MULTILINE
影响^
和$
的行为(以匹配行首和行尾),您在模式中根本不使用它们
对于您的用例,使用DOTALL
,因为您希望在一行中处理所有内容
这会有用的
String trying = "75px;";
Pattern tryingPattern = Pattern.compile("(?<="+Pattern.quote(trying)+").*?(?=center)", Pattern.DOTALL);
Matcher matcher = tryingPattern.matcher(str);
// check all instances
while (matcher.find()) {
System.out.println(matcher.group());
}
String trying=“75px;”;
Pattern tryingPattern=Pattern.compile((?尝试添加Pattern.DOTALL)
捕获该文本的另一个选项是使用捕获组:
75px(.*)center
您可以添加点匹配换行符的标记。可能类似于Pattern.dotalUpdated with multiline,但仍然找不到匹配multiline与^$的行为有关。我认为这不是他需要的。正确,更新了答案!谢谢@RonRosenfeld:)@InstanceFobject很棒,非常好用。有一个问题,如果我把多行代码写到一个文件中,有没有办法把它全部写在一行上,而不是像在源代码中那样逐个写出来?
75px(.*)center