开发者

Java regular expression: how to include '-'

开发者 https://www.devze.com 2022-12-25 06:12 出处:网络
I am using this pattern and matching a string. String s = \"//name:value /name:value\"; if (s.matches(\"(//?\\\\s*\\\\w+:\\\\w+\\\\s*)+\")) {

I am using this pattern and matching a string.

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

This works properly.

But if开发者_如何学运维 I want to have a string like "/name-or-address:value/name-or-address:value" which has this '-' in second part, it doesn't work.

I am using \w to match A-Za-z_, but how can I include - in that?


Use [\w-] to combine both \w and -.

Note that - should always be at the beginning or end of a character class, otherwise it will be interpreted as defining a range of characters (for instance, [a-z] is the range of characters from a to z, whereas [az-] is the three characters a,z,and-).


I don't know if it answers your question but why not replacing \w+ with (\w|-)+ or [\w-]+ ?


[-\w] (Or in a string, [-\\w].)


How about

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

精彩评论

暂无评论...
验证码 换一张
取 消