Java 正则表达式与括号匹配

标签 java regex

我正在尝试使用正则表达式来查找与以下模式匹配的字符串:

(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/

相关文章:

java - 使用 JavaFX 检查单击了哪个 Button 对象

java - 使用 Java 和 JPL 从 SWI-Prolog 检索错误消息

c# 匹配多个正则表达式组,保持每个匹配/单词分开

带有数字破折号的mysql正则表达式搜索字符串

java - 如何在 checkstyle 的 RegexpHeader 中指定带有换行符的可选正则表达式组?

java - 无法使用构造函数?

java - 基于GUI的java计算器: Adding window to a container exception

java - 运行问题 "mvn site"

regex - AWK,如果特定列的模式匹配则拆分文件中的内容

java - 使用java从字符串中删除双字母