【发布时间】:2013-05-20 17:05:10
【问题描述】:
我知道这个(或类似的)已经被问过一百次了——但我现在真的需要帮助 :D 正则表达式应匹配的字符串。
注意:n 在INTEGER_MIN - INTEGER_MAX 的范围内
{number}
{number(1-n)}
{number(1-n,-n-n)}
{number(1-n,-n-n,0-n)}
如果模式匹配,则应生成 3 个单独的捕获组,结果如下。 所有组都应该是可选的 - 这样如果在例如 Java 中请求它们返回 null。
1: 1-n
2: -n-n
3: 0-n
我尝试过的:
\{number(?:\(([1-9])(?:(?:,)([0-9])){0,2}\))?\}
这显然不对,只包含 2 个组 (m.groupCount())
【问题讨论】:
-
“该数字不应有特定限制”是什么意思?你能举例说明什么应该匹配吗?
-
@Jerry
{number(1,-4,11111)}和{number(2322,231123,0)}应该匹配。给出的数字不应小于INTEGER_MIN且大于INTEGER_MAX。我将更新问题以表示这一点。 -
你的问题不清楚,所以你想在做 regex o_o 的同时做一些计算?
-
我得到了一个给定的占位符“{number(..,..,..)}”。这个占位符最多可以有 3 个参数 - 不需要!之后每个参数都被考虑到动态替换,这是在我的 java 代码中完成的。我可以使用 4 个单独的模式 - 但我确信 1 会这样做。
-
所以here 是我想出的,希望这是你想要的...
标签: regex optional-parameters regex-group