正则表达式Java非字母数字字符匹配

时间:2013-04-30 22:26:47

标签: java regex

我想匹配一个这样的表达式:

500 q 6h

其中数字可以是任何整数(因此2 q 500h也是一个合法的表达式)。

我正在尝试使用以下正则表达式匹配此模式  (\W|^)\d+ q \d+h(\W|$)

使用这种模式,我希望像

这样的字符串

a500 q 6h不匹配。相反它是匹配的。

同样,我希望像

这样的字符串

(500 q 6h)要匹配,但不匹配。

我不知道我做错了什么。

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

(?<!\w)\d+ q \d+h(?!\w)

例如:http://www.rubular.com/r/IY6T8GvK7D

答案 1 :(得分:0)

试试这个(注意字符串文字中java所需的双反斜杠)

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

我使用了“字边界”正则表达式\b来处理“前一个字母”问题。