java - 如何纠正这个正则表达式?

标签 java regex

我想捕获正则表达式,例如:“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/

相关文章:

java - directExecutor的优点

java - 通过 JS 调用 JSF 方法

java.io.IOException : Server returned HTTP response code: 503 for URL: http://www. w3.org/TR/html4/strict.dtd

regex - 如何用制表符替换字符串中所有重复的空格

c# - 我如何像 Environment.GetCommandLineArgs() 那样解析命令行参数?

regex - 使用 REGEX 在 Hive Create 和 Load Query 中获取空值

java - 将 wait 和 notifyAll 代码转换为使用 Java 1.5 Lock 对象

java - 更改数据库设计以改进 Spring Data JPA 软删除和查询身份验证

regex - 根据字符串模式和 ifelse 的存在创建列

javascript - 正则表达式匹配新行