【问题标题】:Java Regular Expressions with whitespace带有空格的 Java 正则表达式
【发布时间】:2012-10-30 23:10:28
【问题描述】:

我正在尝试匹配这样的模式:

TR @(任意数量的单词字符都放在这里):

所以模式以 TR 开头,然后有一个空格,然后有 @,然后有任何字符,并以 : 结束

这是我的正则表达式:Pattern p = Pattern.compile("TR\\s@[\\w]+:");

它正在工作,例如会失败:

TR @abcnews:

我认为我的错误在于空格。

【问题讨论】:

  • 这当然不是错误的根源,但\\w 周围的[] 是多余的。
  • 您的正则表达式与您的示例字符串匹配得很好。你有什么问题?
  • 您的正则表达式也不完全符合您的描述:它不仅匹配“TR”后的单个空格,还匹配任何空白字符(空格、制表符、回车、换行、换页) ,或垂直制表符)。如果您确实需要空格,可以使用文字空格 (' ')。

标签: java regex whitespace


【解决方案1】:

DEMO

正则表达式:TR\s+@(\w+):

这甚至会反向引用文本,它接受 TR 和 @ 之间的多个空格,所以它对您来说非常有用,先生。

编辑正常工作的java代码:

Matcher ma = Pattern.compile("TR\\s+@(\\w+):").matcher("TR    @asdfasd:");
while (ma.find()) {
    System.out.println(ma.group(1));
}

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2021-12-27
    相关资源
    最近更新 更多