我想抓住正则表达式:"cx001"
或" cx001"
或" cx001 "
或"cx001."
或"cx001,"
等
现在我正在尝试这个正则表达式:
"[^|\\s|>]*([a-z]{2}[0-9]+\\.?)\\b"
但我遇到的问题是:"#cx001"
,"@cx001"
也匹配。
我希望正则表达式首先接受“space”或“start string”!!!
答案 0 :(得分:2)
您当前的正则表达式通过将其置于字符类[]
内而误用了起始锚点。你可以像这样解决它:
(^|\s*)\b([a-z]{2}[0-9]+\.?)\b
现在你的正则表达式明确关于行的开头,之后可能会跟随零个或多个空白字符。
答案 1 :(得分:0)
您的问题是"\\b"
。多数民众赞成说,弦乐必须以空间结束。更好"\\b*"
或"\\b?"
*:0或许多,?:0或1。
"\\s*[a-z]{2}[0-9]+[\\s\\.,]*"
\\s*
:可以从太空开始
[a-z]{2}
:字母char完全2次
[0-9]+
:数字最小值= 1最大值= ...
[\\s\\.,]*
:空格,点或逗号min = 0或max = ... combination。