如何在记事本++中删除一行中少于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).*
然后用空字符串替换它(没有)。按照下面的演示,看模式是否正确标记了相应的行。
编辑:
这是你可以使用的另一种模式,没有前瞻,这在眼睛上更容易:
^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
以上是关于如何在记事本++中删除一行中少于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个,则不做处理。