正则表达式从字符串中提取为2组

时间:2017-04-10 11:58:27

标签: regex

给出一个长度为10的字符串 例如:0002312577
我需要回归两组:
第1组应该是整个字符串
第2组只有一个数字> 0,可以是字符串中的任何数字

怎么做?试了好几个小时没有运气,应该很简单。这就是我尝试过的。

part

我必须编制一台以正则表达式作为输入的工业机器 谢谢

2 个答案:

答案 0 :(得分:0)

如果我理解你的话,应该这样做:

^(?=0*([1-9]))([0-9]{10})$

它将匹配并捕获一个10位数的字符串,并捕获第二组中的第一个非零数字。

<强>解释

^确保我们在字符串的开头

开始匹配

(?=0*([1-9]))向前看(不消耗)到第一个非零数字并捕获它

([0-9]{10})确保整个字符串为10位数并将其捕获

您可以对其进行测试here

答案 1 :(得分:0)

以下是根据需要提供2组的解决方案:((0|\d){9}[1-9])

Demo

另一个只有一个组匹配数字&gt; 0:(0|\d){9}[1-9]

Demo