Reg Expression - 根据事件选择

时间:2011-03-30 10:44:46

标签: regex numbers

我有 [1]“43300”“22222”“22222”“22222”“22222”“22222”“44200”“32122”“22222”“22222”“55000”“22222”“55000”“22222”“33220”“22222 “
[17]“22222”“22222”“22222”“22222”“22222”“22222”“32221”“22222”“55000”“22222”“22222”“22222”“22222”“22222”“33220”“33310 “

如何用

选择那些(在“”内)

a)没有出现0
b)恰好1发生0 c)恰好2次出现0 d)恰好3次出现0等。

对于a)([1-5 ^ 0] +)没有工作

感谢

3 个答案:

答案 0 :(得分:5)

尝试这种模式:

"((?:[1-5]*0){N}[1-5]*)"

例如:

  • "((?:[1-5]*0){3}[1-5]*)" - 3个零
  • "((?:[1-5]*0){2}[1-5]*)" - 2 zeros
  • "((?:[1-5]*0){1}[1-5]*)" - 1个零,与"([1-5]*0[1-5]*)"
  • 相同
  • "((?:[1-5]*0){0}[1-5]*)" - 0个零,与"([1-5]*)"
  • 相同

您也可以删除引号和捕获组,并改为使用字边界:

\b(?:[1-5]*0){N}[1-5]*\b

答案 1 :(得分:0)

假设没有前导零:

a)[1-9]+

b)[1-9]+0[1-9]*

答案 2 :(得分:0)

如果string中的数字位数= 5

a)[^0]{5}

b)[^0]{4}

c)[^0]{3}

d)[^0]{2}