Java正则表达式:如何包含' - '

时间:2010-04-02 20:33:08

标签: java regex

我正在使用此模式并匹配字符串。

String s = "//name:value /name:value";
if (s.matches("(//?\\s*\\w+:\\w+\\s*)+")) {
  // it fits
}

这很正常。
但是如果我想要一个像"/name-or-address:value/name-or-address:value"这样的字符串,在第二部分中有这个' - ',它就不起作用。
我使用\w来匹配A-Za-z_,但我如何在其中加入-

4 个答案:

答案 0 :(得分:5)

使用[\w-]结合\w-

请注意,-应始终位于字符类的开头或结尾,否则将被解释为定义一系列字符(例如,[a-z]a中的字符范围{1}}到z,而[az-]是三个字符az-)。

答案 1 :(得分:0)

我不知道它是否回答了你的问题,但为什么不用(\ w | - )+或[\ w - ] +替换\ w +?

答案 2 :(得分:0)

[-\w](或在字符串中[-\\w]。)

答案 3 :(得分:0)

怎么样

 if (s.matches("/(/|\\w|-|:\\w)+")) {