对于每一行,如何删除"
的第5次出现与.
的最后次出现之间的所有内容,不包含?要删除的部分包含任何有问题(对于正则表达式)字符的数字和变量模式,例如:/\()[]|.,?"
等。
例如:
"123456789","xyxyxy","DELETE///.T.H.I.S.aaa"
"123","abc","DELETE."\T.H.I.S\[.]".1234"
"123456789","xyxyxy",".aaa"
"123","abc",".1234"
我一直都在失败(可能是因为有问题的字符的错误转义?)。
答案 0 :(得分:1)
不确定它是否与notepad ++兼容,但这个正则表达式应该可以完成它的工作:
((?:"[^"]*){4}").*(\..*)
替换:
\1\2
答案 1 :(得分:1)
试试这个正则表达式:
((?:[^"\n]*"){5})(.*)(\..*)$
<强>解释强>
^
- 断言字符串的开头(?:[^"\n]*")
- 匹配0 +出现的任何字符,既不是"
也不是换行符,后面跟着"
{5}
- 重复上述比赛5次。到目前为止匹配的所有内容都在第1组中捕获。(.*)
- 匹配并捕获任何字符贪婪的0次出现,但不是新行字符。存储的是group2。这部分将在以后删除/删除。贪婪的比赛,因为我们现在想要到达最后.
。我们可以通过回溯(在下一步中)到达那里(\..*)
- 匹配一个点后跟0次出现的任何字符,但换行符并存储在第3组$
- 断言字符串的结尾<强>输出:强>
替换之前:
更换后: