(已解决)有个正则表达式不知道怎么写.求助.
本帖最后由 scorpio1102 于 2014-7-15 11:45 编辑有两组数据:321-140605001
:021-12345678
要求:在冒号后面但不包含冒号且不以32开头的三位或四位数字紧跟横杠'-'和8位数字.
(?<=:[^..........彻底凌乱了.求助. (?ms)(?<=\:)(?!32)\d{3,4}\-\d{8}(?=\D)这个试下 本帖最后由 lixiaolong 于 2014-6-5 19:59 编辑
:(?!32)(\d+-\d{8}(?!\d)) 本帖最后由 scorpio1102 于 2014-6-6 11:22 编辑
回复 3# lixiaolong
看起来好像有点不理解,但用起来好像又OK.奇迹.
不以32开头的三位或四位数字没有限定吧.5位以上也匹配了. 回复 4# scorpio1102
:(?!32)(\d{3,4}-\d{8}(?!\d))
亲测可以.
解释:
: 开头的必须为:
(?!32)之后的2个字符不能为32
\d{3,4}匹配数字3-4次
- 中间必须有 -
\d{8}符号-之后必须有8个数字
(?!\d)紧接着8个数字的那个字符不能为数字.
试试这些. 我测试没有问题的
:321-140605001
:021-12345678
:312-123331112
:323-140605001
:321-140605001
:0212-12345678
:312-123331112
:323-140605001
:321-140605001
:021-12345678
:31222-123331112
:323-140605001
回复 2# kevinch
明白了,感谢. 回复 5# lanfengc
冒号匹配进去了为啥没正则出来
(?!\d)紧接着8个数字的那个字符不能为数字.我理解为非数字的意思,那怎么能又匹配到数字. 回复 7# scorpio1102
你要这个开始的冒号吗? 要的话就把冒号加到括号了.
(:(?!32)\d{3,4}-\d{8}(?!\d)) 回复 8# lanfengc
明白了,不要冒号,不明白为什么不是(?!\D) 回复 9# scorpio1102
(?!\D)和 (?!\d) 是不一样的。 详见帮助文件
页:
[1]