正则表达式与此匹配相反

时间:2012-10-26 12:34:53

标签: regex numbers notepad++

我的问题是你如何正则表达不是我目前正则表达式的东西。

我的正则表达式是: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})

3 个答案:

答案 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开头,后跟除九个以外的任意数字。