可能重複:
Regex for checking if a string has mismatched parentheses?匹配圓括號用的preg_match()
我想寫一個正則表達式匹配的數字而已,可選擇用括號括起來的字符串(正則表達式必須還要檢查括號是否正確關閉,也就是說,如果它們存在於語法分析中)。 因此,所有的這應被視爲由正則表達式有效: 123(45)6 (123)(456)
我想出了這個使用條件的模式(請注意,我用的空間,以便在x修飾符需要使它忽略空格):
$val = "(123)";
$regex = "^((\()? [0-9]+ (?(2)\)))+$";
$ret = preg_match("/{$regex}/x", $val, $matches);
然而儘管它符合以上條件「(123)」正確地,它也匹配低於它不應該: 「(123)45)」(第二數量具有僅限圓括號)
任何人都可以 幫幫我?
注:允許
謝謝!我很生氣,因爲當解決方案非常簡短時,我花了很多時間試圖用條件表達式來完成它。 – John