什么是正则表达式恰好匹配两个连续的制表符和新的行符号。 \t\n\t\n
?我正在使用Java。
答案 0 :(得分:4)
Java 8支持将\R
用作Linebreak matcher,以匹配任何Unicode换行序列。
所以你可以像这样使用它:
String str = "\t\r\n\t\r\n";
System.out.printf("Matched: <%s>%n", str.matches("(?:\\t\\R){2}"));
str = "\t\n\t\n";
System.out.printf("Matched: <%s>%n", str.matches("(?:\\t\\R){2}"));
由于我们在matches()
方法中使用此正则表达式,因此它仅匹配完整的字符串输入。
<强>输出:强>
Matched: <true>
Matched: <true>
答案 1 :(得分:2)
您的表达式将匹配\t\n\t\n
,即使它是更长序列的一部分,即不是连续两次出现。
如果您想匹配恰好两个\t\n
s的序列,请使用负面外观:
(?<!\t\n)(\t\n){2}(?!\t\n)
请注意使用括号和{2}
,它可以避免多次输入相同的序列。