正则表达式+捕获具有不同条件的组

时间:2015-07-30 23:14:11

标签: regex

在这里处理正则表达式https://regex101.com/r/wI2cG1/1

这是数据:

K'1234567
K'123456789
K'123456

我对K'后的数字感兴趣 我希望使用正则表达式执行此操作,但不确定是否可以完成。我想要的是:
如果数字有6位数,则返回前2位数,例如12
如果数字有7位数,则返回前3位数,例如123
如果该号码有9位数,则返回前4位数,例如1234

也 如果数字有10或11位数,则返回前3位数,例如123个

我希望将它们返回到不同的捕获组名称,或者如果可能的话,返回相同的捕获组名称。

1 个答案:

答案 0 :(得分:3)

可以使用branch reset功能将结果保存在一个组中:

K'(?|(\d{2,3})\d{4}|(\d{4})\d{5}|(\d{3})\d{7,8})\b

Regex Demo