我正在尝试使用正则表达式来查找与以下模式匹配的字符串:
(someNumber - someNumber) 包含括号。
我尝试过:
"\\([1-9]*-[1-9]*\\)"
但这似乎不起作用。
我还需要匹配:
字母 W 或 L 后跟 (someNumber - someNumber) 并包含括号。
我尝试使用上面相同的模式,稍加修改,但同样,没有运气:
"W|L \\([1-9]*-[1-9]*\\)"
如有任何帮助,我们将不胜感激
最佳答案
在括号中包含 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+\\)"
关于Java 正则表达式与括号匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335036/