所以我明白了:
123456asdsa
444444dfsdsdg
3443fsdfdsd
77gdsggfgf
而且我只希望删除任何包含6位数字的行,无论其字数如何,都可以这样:
3443fsdfdsd
77gdsggfgf
我唯一发现的是此正则表达式[0-9] {6},它使我只能选择6位数字但没有单词,所以我该怎么办? 谢谢
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用:
^\D*\d{6}(?!\d).* #or ^\D*\d{6}(?=\D).*
在这种情况下,您将看到在数字之前是否有任何非数字。当您得到六个数字时,请确保下一个为非数字。即只选择6位数字的行。没有选择7位数或以上的数字或少于6位数的数字:
答案 2 :(得分:0)
您的要求不是很清楚,所以我给您几种选择,希望其中一种能满足您的需求。
如果要选择包含连续6位数字且没有其他数字的行,则可以使用
^\D*\d{6}\D*$
^ start of line
\D* some optional non-digit,
\d{6} followed by 6 digits,
\D* followed by some optional non-digit
$ till end of line
如果要选择包含6位数字的行(不必是连续的),则可以使用
^(\D*\d){6}\D*$
^ start of line
(\D*\d) group of optional non-digit then 1 digit
{6} above group happening for 6 times
(i.e. 6 digits in total)
\D*$ follow by non-digits till end of line
如果您要选择包含完全由6位数字组成的行,则可以
^.*(\b|\D)\d{6}(\b|\D).*$
^.* start of line, followed by some chars
(\b|\D) followed word boundary or non-digit
\d{6} 6 digits
(\b|\D) followed word boundary or non-digit
.*$ followed by some chars till end of line
更新:
使用@WiktorStribiżew的信息,Notepad ++可能以意外的方式处理\D
,因为它可能与换行符匹配。您只需将上述正则表达式中的\D
替换为[^0-9\n\r]
即可获得首选行为。