我的档案内容如下
/**
some text
text1
text2
some text
**/
我想检查/ text ** /之间是否包含“ text1”或“ text2”,如以上示例所述。
我尝试下面的代码
Pattern p = Pattern.compile("//*/*.*?text1.*?/*/*/");
Matcher m = p.matcher(fileAsString);
while (m.find()) {
System.out.println("match found");
}
但是它有两个缺点。这些是 :-
1)它检查/ ** text1 ** /之间的text1,但当text1在下一行时不起作用
2)我不确定如何在此正则表达式中检查两个字符串中的任何一个,即“ text1”或“ text2”?
您可以使用:
Pattern p = Pattern.compile("/\\*\\*.*?(?:text1|text2).*?\\*\\*/", Pattern.DOTALL);
Pattern.DOTALL
需要确保匹配多行文本*
需要使用 \\*
(?:text1|text2)
是非捕获的替代,需要匹配text1
或text2
。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句