我要匹配這樣的表達式:正則表達式的Java非字母數字字符匹配
500 q 6h
當數可以是任意整數(因此2 q 500h
也是一個合法的表達式)。
我嘗試使用下面的正則表達式 (\W|^)\d+ q \d+h(\W|$)
使用這個模式來匹配這個模式,我希望像
a500 q 6h
字符串被不匹配。相反,它是匹配的。
同樣,我希望像
(500 q 6h)
待匹配字符串,但它是不匹配的。
我不明白我做錯了什麼。
我要匹配這樣的表達式:正則表達式的Java非字母數字字符匹配
500 q 6h
當數可以是任意整數(因此2 q 500h
也是一個合法的表達式)。
我嘗試使用下面的正則表達式 (\W|^)\d+ q \d+h(\W|$)
使用這個模式來匹配這個模式,我希望像
a500 q 6h
字符串被不匹配。相反,它是匹配的。
同樣,我希望像
(500 q 6h)
待匹配字符串,但它是不匹配的。
我不明白我做錯了什麼。
試試這個(注意字符串常量Java必需的雙反斜線)
\\b\\d+ q \\d+h
我用「字邊界「正則表達式\b
來處理」前面的字母「問題。
^[0-9] + q [0-9] + h $應該可以工作 – 2013-04-30 22:30:09
問題中的表達式是否直接從您的代碼中複製並粘貼?我問,因爲'\ W \ $'幾乎肯定是不正確的,並且在第二個'\ d'之後可能還有'+'丟失。確保你的'\ W'實際上是大寫的。 – 2013-04-30 22:32:38
@CorvinMcpherson雖然不符合'(500 q 6h)'。 – 2013-04-30 22:34:13