匹配「>」或「|」模式的適當正則表達式是什麼?像下面的例子那樣至少有三次出現?我想匹配「>」或「|」 (不是兩個)在給定的文本之間不規則的間距。匹配「a> b> c」模式的正則表達式?
應該匹配
「A> B> C> d> e」 的
「A | B | C | d | E」
不應該比賽
「a> b> c」(only 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)));
}
}
}
你需要捕獲組嗎?他們需要在兩者之間有角色嗎? – 2013-04-09 09:53:01
捕獲組是一件好事。除了空格之外,沒有任何字符,我可以保證 – 2013-04-09 09:57:05
這個「a> b> c> d> e」在兩個字符之間有字符。你說只會有空格? – 2013-04-09 09:58:19