我正在尝试使用正则表达式来查找与以下模式匹配的字符串:
(someNumber - someNumber)包含括号。
我试过了:
"\\([1-9]*-[1-9]*\\)"
但这似乎不起作用。
我还需要匹配:
字母W或L后跟(someNumber - someNumber)括号括起来。
我尝试使用上面相同的模式,略微修改,但再次,没有运气:
"W|L \\([1-9]*-[1-9]*\\)"
任何帮助将不胜感激
答案 0 :(得分:1)
在括号中包括W | L:
(W|L)
如果要在减号前后添加空格字符,请在前后添加\ s或空格 -
"((W|L)\\s)?\\([1-9]*\\s-\\s[1-9]*\\)"
如果您已经知道至少有一位数,请使用+
代替*
,因为*
匹配零或更多,而+
匹配1或更多。
上面给出的模式与前面的W或L匹配和不匹配。
这是一个模式,在-
周围有和没有空格,前面有或没有W或L。此外,它还会捕获包含0
的数字,这些数字会在原始正则表达式中排除。
"((W|L)\\s)?\\(\\d+\\s?-\\s?\\d+\\)"
答案 1 :(得分:0)
你可以试试这个:
“(W | L)\\ S * \\(\\ d + - \\ d + \\)”
答案 2 :(得分:0)
除了blueygh2的回答,如果数字包含零,你的正则表达式将失败。我的猜测是你要避免使用前导零,在这种情况下使用[1-9]\d*
(或[1-9][0-9]*
)。如果您希望允许数字等于0
,但要避免使用前导零,请执行([1-9]\d*|0)
。