【问题标题】:Java regex Pattern matches doesn't recognise "Escape +" [duplicate]Java 正则表达式模式匹配不识别“Escape +” [重复]
【发布时间】:2016-07-28 11:10:43
【问题描述】:

我正在尝试使用模式 ^\\+[0-9]+ 来匹配 +852(2)78911,但似乎

Pattern.matches("^\\+[0-9]+", s)

正在返回false。当我在regexr 尝试它时,它工作正常,即给我一个匹配。我在 Java 意义上没有正确地转义这个吗?

【问题讨论】:

  • 如果您的模式与括号不匹配,它如何在 regexpr 中工作?你期待什么结果?我相信你只需要使用Matcher#find()
  • 它给你这个匹配:'+852' 而不是字符串的其余部分

标签: java regex


【解决方案1】:

试试这个正则表达式:^\\+[0-9\\(\\)]+$

【讨论】:

  • 您可以在此处找到格式化功能:stackoverflow.com/editing-help。没有必要在字符类中转义括号。另请注意,当您使用 matches 方法时,锚点是隐式的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多