2
我想建立正則表達式,檢查是否輸入的字符串是正則表達式,所以如果它包含|
,[
然後]
,(
然後例如)
:Java正則表達式來發現正則表達式
A0[1-4].*Done or (L1 | L2).*Done'
我已經構建了這樣簡單的東西:".[\\[]..[\\]]"
,但即使對於簡單的示例,它也不起作用。我試圖用Java的匹配和只是簡單的String.matches()
我想建立正則表達式,檢查是否輸入的字符串是正則表達式,所以如果它包含|
,[
然後]
,(
然後例如)
:Java正則表達式來發現正則表達式
A0[1-4].*Done or (L1 | L2).*Done'
我已經構建了這樣簡單的東西:".[\\[]..[\\]]"
,但即使對於簡單的示例,它也不起作用。我試圖用Java的匹配和只是簡單的String.matches()
您可以使用Java自身的解析器來檢查,如果輸入的是正則表達式或不:
public boolean isRegExp(String pattern) {
try {
Pattern.compile(pattern);
return true;
}
catch(PatternSyntaxException ex) {
return false;
}
}
一個正則表達式識別正則表達式...讓我想起了[這個XKCD的](http://xkcd.com/1313/) –
正則表達式應該匹配什麼?一個_valid_正則表達式,或任何以某種方式看起來像正則表達式的東西,即包含典型的正則表達式字符? –
我懷疑這是可能的。問題是正則表達式描述常規語言。而正則語言的其中一個特性是它們是'上下文無關的「,當然,正則表達式不是上下文無關的。所以,正則表達式本身並不是一個常規語言,所以不能用正則表達式來描述。同時,塔吉爾的答案應該適合你。 – mkrakhin