我想捕获正则表达式,例如:“cx001”
或“cx001”
或“cx001”
或“cx001。 “
或 “cx001”、
等
现在我正在尝试使用这个正则表达式:
"[^|\\s|>]*([a-z]{2}[0-9]+\\.?)\\b"
但我有一个问题:"#cx001"
, "@cx001"
也匹配。
我希望正则表达式首先接受“空格”或“起始字符串”!!!
最佳答案
您当前的正则表达式通过将起始 anchor 放置在字符类[]
中来滥用起始 anchor 。您可以像这样修复它:
(^|\s*)\b([a-z]{2}[0-9]+\.?)\b
现在,您的正则表达式对于行的开头是明确的,之后可能会跟随零个或多个空白字符。
这是一个demo on ideone .
关于java - 如何纠正这个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057701/