正则表达式Java非字母数字字符匹配
我想匹配如下表达式:正则表达式Java非字母数字字符匹配,java,regex,Java,Regex,我想匹配如下表达式: 500q6h 其中数字可以是任意整数(因此2q500h也是一个合法表达式) 我尝试使用以下正则表达式匹配此模式 (\W |^)\d+q\d+h(\W |$) 使用这种模式,我希望字符串 a500 q 6h不匹配。相反,它是匹配的 类似地,我希望使用类似的字符串 (500 q 6h)待匹配,但未匹配 我不明白我做错了什么。尝试以下方法: (?<!\w)\d+ q \d+h(?!\w) (? 例如:试试这个(注意java在字符串文本中需要双反斜杠) 我使用了“单词边界”
500q6h
其中数字可以是任意整数(因此2q500h
也是一个合法表达式)
我尝试使用以下正则表达式匹配此模式
(\W |^)\d+q\d+h(\W |$)
使用这种模式,我希望字符串
a500 q 6h
不匹配。相反,它是匹配的
类似地,我希望使用类似的字符串
(500 q 6h)
待匹配,但未匹配
我不明白我做错了什么。尝试以下方法:
(?<!\w)\d+ q \d+h(?!\w)
(?
例如:试试这个(注意java在字符串文本中需要双反斜杠)
我使用了“单词边界”正则表达式\b
来处理“前一个字母”问题。^[0-9]+q[0-9]+h$应该是问题中直接从代码中复制和粘贴的表达式吗?我这样问是因为\W\$
几乎肯定是不正确的,而且在第二个\d
之后也可能缺少+
。请确保\W
实际上是大写的。@CorvinMcpherson,这与不匹配(500 q 6h)
尽管如此。^\(?[0-9]+q[0-9]+h\)?$修改为匹配(500 q 6h)@Elliott:显示相关代码;)
\\b\\d+ q \\d+h