什么是匹配“>”或“|”模式的正确正则表达式 至少出现 3 次,如下例所示?我想匹配“>”或“|” (不是两者)在给定的文本中,中间有不规则的间距。
应该匹配
“a>b>c>d>e”
" a|b|c | d |e"
不应该匹配
“a>b>c”(只有 2 个“>”)
“ a|b>c | d |e”(不是“>”或“|”)
用于测试表达式的示例 Java 代码 (仅转义反斜杠)
public static void main(String[] args) {
List<String> patterns = new ArrayList<String>();
patterns.add("/((\\s*\\w+\\s*>\\s*){3,}|(\\s*\\w+s*\\|\\s*){3,})\\w/g");
patterns.add("^( ([\\w\\s]*>){3,} | ([\\w\\s]*\\|){3,} )[\\w\\s]*$");
patterns.add("/(>|\\|)[^>\\|]*\\1[^>\\|]*\\1/");
patterns.add("/[\\w ]*([>|])(?:[\\w ]*\\1){2,}[\\w ]*/");
List<String> test = new ArrayList<String>();
test.add("a > b > c > d");
test.add("a >b> c> d");
test.add("a>b>c>d");
test.add("a>b>c");
for (String s : test) {
for (int i = 0; i < patterns.size(); i++) {
System.out.println(s + "[Pattern " + i + "] " + s.matches(patterns.get(i)));
}
}
}