我尝试使用正则表达式。我有这种模式
STACK
blabla
OVER
blabla
STACK
vlvlv
OVER
也许最后还有另一条线。 我写这个模式似乎适用于检查正则表达但不适用于java的网站。
"^(STACK(\n[^\n]+\n)OVER(\n[^\n]+(\n)?)?)+$"
什么是正确的模式? 致谢
答案 0 :(得分:0)
假设您要检查整个输入是否可以与正则表达式匹配,您可以使用类似
的内容String data =
"STACK\r\n" +
"blabla\r\n" +
"OVER\r\n" +
"blabla\r\n" +
"STACK\r\n" +
"vlvlv\r\n" +
"OVER";
String regex ="(^STACK$((\r?\n|\r).+(\r?\n|\r))^OVER$((\r?\n|\r).+(\r?\n|\r)?)?+)+";
Pattern p = Pattern.compile(regex,Pattern.MULTILINE);
Matcher m = p.matcher(data);
System.out.println(m.matches());
Pattern.MULTILINE
标记,让^
和$
成为行的开头和结尾,而不是默认情况下是整个输入的开始和结束。START
和OVER
必须是第一行中用^
和$
包围它的单词。\r\n
或\r
,因此我更改了它以反映它。[^\n]
更改为.
,因为它们几乎相同(点\r
不包括[^\n]
。