如何创建独占或使用正则表达式

时间:2017-03-20 06:11:05

标签: regex

我想写一个正则表达式脚本来匹配以下两个样本:

a/b/c
a1/a2/b/c

(注意:a,a1,a2,b,c都是正整数)。 我面临的挑战是我需要能够捕获每个变量的值。

我试过像(\d+|(\d+\/\d+))\/\d+\/\d+这样的东西。但|计算器似乎是一个包容性的,而不是排他性的。

我有什么方法可以写独家或?

我也对其他解决方案持开放态度。

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:(?:sth)

这里第二组是可选匹配。请注意,我还使用了非捕获组1/2/3/4,它不计入组。

例如,对于1,这些组是: 第1组2 第2组3 第3组4 第4组1/3/4

对于1,这些群组是: 第1组3 第3组4 第4组f = x**2 + 1

答案 1 :(得分:0)

您尝试捕获至少3个数字,以/分隔,加上可能是另一个/和数字。

所以直观的正则表达式是:

(\d+)\/(\d+)\/(\d+)(?:\/(\d+))?

“尾巴”(最终/和数字)是最终非捕获组的内容。 ?之后声明它是可选的。