我有一些大的文本文件,需要用替换全部替换一些文本。
但是,替换的文本包含原始文本,该文本会创建无限循环。
我需要某种方法或程序来进行全部替换,并检查替换是否已完成。可以检查找到的ABC匹配项是否已经包含在ABCD中,并跳过该替换项。
我的示例中的ABC只是一个基本情况,可以是任何字符序列,因此使用像match full sting这样的选项只能用。
答案 0 :(得分:0)
您可以使用支持正则表达式的语言或工具,并使用预见。
作为bash shell中的一个简单例子:
echo "ABCEE" | grep -P -o "ABC(?=[^D])"
输出“ ABC”(即找到匹配项)
其中:
echo "ABCDE" | grep -P -o "ABC(?=[^D])"
不-不匹配。
(?= ...)的意思是“跟随”,“ [^ D]”的意思是“除D之外的任何东西”。
使用捕获组可以捕获“ ABC”,从而变得更加复杂-查看正则表达式,您应该会找到很多选择。