如何在记事本++中删除一行中少于11个但多于8个数字的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在记事本++中删除一行中少于11个但多于8个数字的行相关的知识,希望对你有一定的参考价值。

如何在记事本++中删除一行中少于11个但多于8个数字的行。这些数字是用字母或空格等彼此分开的。

答案

您的要求是删除具有9或10位数但不多于或少于此数字的行。您可以尝试使用前瞻来处理这个问题。在正则表达式模式下,尝试查找以下模式:

^(?!.*d.*d.*d.*d.*d.*d.*d.*d.*d.*d.*d)(?=.*d.*d.*d.*d.*d.*d.*d.*d.*d).*

然后用空字符串替换它(没有)。按照下面的演示,看模式是否正确标记了相应的行。

Demo

编辑:

这是你可以使用的另一种模式,没有前瞻,这在眼睛上更容易:

^D*dD*dD*dD*dD*dD*dD*dD*dD*dD*d?D*$

这再次表示匹配包含9或10位数但不多于或少于此数的任何行。

另一答案
  • 按Ctrl + H
  • 找到什么:^(?:D*d){8}(?:D*d){0,3}(?:R|$)
  • 替换为:LEAVE EMPTY
  • 检查包裹
  • 检查正则表达式
  • 全部替换

说明:

^                   # beginning of line
  (?:D*d){8}      # non capture group, 0 or more NON digit and 1 digit, may appear 8 times
  (?:D*d){0,3}    # non capture group, 0 or more NON digit and 1 digit, may appear 0 upto 3 times
(?:R|$)            # non capture group, linebreak or end of file

鉴于:

1234567
12345678
123456789
1234567890
12345678901
123456789012
a1b2c3d4e5f6g7
a1b2c3d4e5f6g7h8
a1b2c3d4e5f6g7h8i9
a1b2c3d4e5f6g7h8i9j0k1l2

给出示例的结果:

1234567
123456789012
a1b2c3d4e5f6g7
a1b2c3d4e5f6g7h8i9j0k1l2

屏幕截图:enter image description here

以上是关于如何在记事本++中删除一行中少于11个但多于8个数字的行的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题四十之使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

C语言试题十四之使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。

C语言试题六之使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。

C语言九十四之请编写函数fun(char *str, int n),其功能是:使字符串str的前导*号不能多余n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理。

C语言九十四之请编写函数fun(char *str, int n),其功能是:使字符串str的前导*号不能多余n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理。

1168画矩形