我有大多数人可能会考虑解决这个简单易行的问题。
我有一个格式如此的列表;
?d?d?d?d?l?d?d?d
?d?d?d?d?l?d?d?l
?d?d?d?d?l?d?d?u
?d?d?d?d?l?d?l?d
?d?d?d?d?l?d?l?l
这样有成千上万行。我想要一个正则表达式,它将选择包含超过5次出现的字母d
的所有行,以便可以从列表中删除它们。
尽管进行了广泛的搜索,我还没有找到有效的解决方案。我在这个论坛和其他论坛(包括空格和特殊字符)上找到了很多搜索字符等的方法,并且能够成功地在其他单词列表上进行搜索,但我认为所有单词都存在那些问号搞砸了......但我无法肯定地说。
如果我错过了一篇能够完美解释这个问题的帖子,我会提前道歉,但我已经努力找到一个解决方案,并且对此感到恼火。
非常感谢您提供的任何帮助!
答案 0 :(得分:1)
使用查找和替换并替换与以下内容匹配的行:
^.*(d.*){6}.*\r\n
说明:
^ - 从一行的开头开始 。* - 跳过0个或更多不感兴趣的字符但不过去的结尾 (d。) - 找到d后跟任何不感兴趣的字符,但不是过去的结尾 {6} - 重复最后一组六次(所以6 d后跟任何东西) 。 - 匹配任何剩余的字符到行尾 \ r \ n-匹配行序列的结尾(由@toto指出,更好地作为\ R
答案 1 :(得分:1)
如果没有安装notepad ++,我希望^.*(?:d.*){5,}$
(regex101)能够做你想做的事情:
^
从该行的开头开始。.*
匹配任何字符0次或更多次。 (忽略行开头不是d
的任何字符。)(?:d.*){5,}
匹配以下5次或更多次:
d
字母d。.*
任何字符0次或更多次。 (忽略d
s。)之间的任何字符。$
匹配该行的结尾。正如NetMage指出的那样,这将留下空白。要解决此问题,请使用\r?\n
代替$
。匹配:
\r?
如果使用Windows,则为可选回车。\n
换行。