2013-04-30 205 views
0

我要匹配這樣的表達式:正則表達式的Java非字母數字字符匹配

500 q 6h

當數可以是任意整數(因此2 q 500h也是一個合法的表達式)。

我嘗試使用下面的正則表達式 (\W|^)\d+ q \d+h(\W|$)

使用這個模式來匹配這個模式,我希望像

a500 q 6h字符串被不匹配。相反,它是匹配的。

同樣,我希望像

(500 q 6h)待匹配字符串,但它是不匹配的。

我不明白我做錯了什麼。

+0

^[0-9] + q [0-9] + h $應該可以工作 – 2013-04-30 22:30:09

+0

問題中的表達式是否直接從您的代碼中複製並粘貼?我問,因爲'\ W \ $'幾乎肯定是不正確的,並且在第二個'\ d'之後可能還有'+'丟失。確保你的'\ W'實際上是大寫的。 – 2013-04-30 22:32:38

+0

@CorvinMcpherson雖然不符合'(500 q 6h)'。 – 2013-04-30 22:34:13

回答

0

試試這個(注意字符串常量Java必需的雙反斜線)

\\b\\d+ q \\d+h 

我用「字邊界「正則表達式\b來處理」前面的字母「問題。

相關問題