4

我需要一个匹配字母和数字但不匹配序列“00”的正则表达式。

例如“hello00world00number001”应该匹配:“hello”、“world”、“number”和“1”。

我测试没有成功:

(?:[\w](?<!00))+

编辑:“hello000world0000number000001”必须分成:“hello0”“world”“number0”和“1”

4

3 回答 3

5

输入字符串:hello000world0000number00000100test00test20

分裂

  1. 00如果遇到类似的系列,单独拆分将生成空匹配0000
    输出:hello/0world//number//01/test/test20

  2. 为了解决这个问题,让我们在一个组中包含 2 个零:
    RegEx:(00)+-系列中的最后一个不均匀0进入下一场比赛-现场演示
    输出:hello/0world/number/01/test/test20

  3. 使用负前瞻:
    RegEx:(00)+(?!0)-在第一场比赛中保持0不平衡系列中的第一个-现场演示
    输出:hello0/world/number0/1/test/test20

匹配

  1. 00结果不正确
  2. /([a-z0-9]+?)(?:(?:00)+|$)/gi-现场演示
  3. /([a-z0-9]+?)(?:(?:00)+(?!0)|$)/gi-现场演示
于 2013-05-07T20:38:51.817 回答
1

您可以使用以下模式拆分“hello000world0000number000001”:

(00)+(?=0?[^0])
于 2013-05-07T20:42:23.003 回答
1
str = "hello00world00number001"
str.split("00")

为什么这不起作用

于 2013-05-07T20:02:39.853 回答