我想捕捉如下正则表达式:"cx001"
或" cx001"
或" cx001 "
或"cx001."
或"cx001,"
等
现在我正在尝试使用此正则表达式:
"[^|\\s|>]*([a-z]{2}[0-9]+\\.?)\\b"
但我有一个问题是:
"#cx001"
,"@cx001"
也被匹配。我只希望正则表达式只首先接受“空格”或“起始字符串”!
最佳答案
当前的正则表达式通过将起始锚放置在字符类[]
中来滥用起始锚。您可以这样解决:
(^|\s*)\b([a-z]{2}[0-9]+\.?)\b
现在,您的正则表达式是关于行首的显式说明,此后可能跟随零个或多个空白字符。
这是demo on ideone。