我正在使用此模式并匹配字符串。
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_
,但我如何在其中加入-
?
答案 0 :(得分:5)
使用[\w-]
结合\w
和-
。
请注意,-
应始终位于字符类的开头或结尾,否则将被解释为定义一系列字符(例如,[a-z]
是a
中的字符范围{1}}到z
,而[az-]
是三个字符a
,z
和-
)。
答案 1 :(得分:0)
我不知道它是否回答了你的问题,但为什么不用(\ w | - )+或[\ w - ] +替换\ w +?
答案 2 :(得分:0)
[-\w]
(或在字符串中[-\\w]
。)
答案 3 :(得分:0)
怎么样
if (s.matches("/(/|\\w|-|:\\w)+")) {