我的问题是你如何正则表达不是我目前正则表达式的东西。
我的正则表达式是:9 \ d \ d \ d \ d \ d \ d \ d \ d \ d
我试图找到以9开头的10位数字。 但现在我想找到那些与此相反的人。
我该怎么做?我尝试将它与notepad ++ regex一起使用,找到那些不是10位且doest以9开头,并删除它们。
我需要删除:所有内容,无论数字位数是多少,只要它不是10位数,并且不以9开头。
谢谢。
我有一个看起来像这样的长文件,
905664572
9055148
9052836956
9054950806
9059105646
905403434
905654765
9058618018
90547214
我需要摆脱所有不是10位的东西。
使用记事本++
这个正则表达式有效:9 \ d \ d \ d \ d \ d \ d \ d \ d \ d
这个正则表达式不是:9 \ d {9}和^ 9(\ d {0,9}
这符合我的目标:
(?<!\d)[0-9](\d{0,8})
答案 0 :(得分:3)
^9(\d{0,8}|\d{10,})$
这是你的测试。 http://www.rubular.com/r/Ls56UCYRHa
有关正则表达式的更多信息http://www.regular-expressions.info
答案 1 :(得分:1)
您的正则表达式为9\d\d\d\d\d\d\d\d\d
,可以缩短为9\d{9}
...
嗯,相反的可能是(?!9\d\d\d\d\d\d\d\d\d)
或(?!9\d{9})
或9(?>!\d{9})
编辑:
工作快递:(?<!\d)9(\d{0,8}|\d{10,})(?=\D)
答案 2 :(得分:0)
您可以使用正则表达式:
^9(\d{0,8}|\d{10,})$
这可确保您的输入以9
开头,后跟除九个以外的任意数字。