无法使用正则表达式捕获数字

时间:2016-10-07 17:46:57

标签: regex

我有以下字符串:

car_0001_grp10|banana

我想隔离grp10部分。所以我使用以下正则表达式:

[grp]+[0-999]+[^|]

这适用于grp10grp56grp999等。

但不适用于grp1grp9。我怎么能包括那些呢?

2 个答案:

答案 0 :(得分:2)

您的[grp]+[0-999]+[^|]匹配1个或多个字符grp,然后是1个或多个数字,然后是|以外的1个必填字符

你需要

grp[0-9]+

或只抓1到3位数字:

grp[0-9]{1,3}

请参阅regex demo

  • grp - 匹配一系列字符grp
  • [0-9]+ - 一位或多位数([0-9]{1,3}将匹配1,2或3位数,000999匹配。

答案 1 :(得分:1)

如果你只是这样做怎么办?

grp\d+

该字符串可以通过哪些方式更改?你需要对它进行任何类型的验证吗?只有你需要我才会增加它的复杂性。