我需要一个匹配字母和数字的正则表达式,但不匹配序列“00”.
例如“hello00world00number001”应匹配:“hello”,“world”,“number”和“1”.
我测试没有成功:
(?:[\w](?<!00))+
编辑:“hello000world0000number000001”必须分为:“hello0”“world”“number0”和“1”
解决方法
输入字符串:hello000world0000number00000100test00test20
分裂
>如果遇到类似0000的系列,则仅按00分割将生成空匹配:
输出:hello / 0world // number // 01 / test / test20
>要解决此问题,请在组中包含2个零:
RegEx:(00) – 系列中的最后一个不均匀0进入下一场比赛–live demo
输出:hello / 0world / number / 01 / test / test20
>使用否定前瞻:
RegEx:(00)(?!0) – 在第一场比赛中保持第0个不均匀系列 – live demo
输出:hello0 / world / number0 / 1 / test / test20
比赛
>仅00的结果不正确
> /([a-z0-9]?)(?:(?:00)| $)/ gi – live demo
> /([a-z0-9]?)(?:(?:00)(?!0)| $)/ gi – live demo