如何用ABCD代替ABC而不是用ABCDD代替ABCD

时间:2018-07-09 18:34:06

标签: replace

我有一些大的文本文件,需要用替换全部替换一些文本。

但是,替换的文本包含原始文本,该文本会创建无限循环。

我需要某种方法或程序来进行全部替换,并检查替换是否已完成。可以检查找到的ABC匹配项是否已经包含在ABCD中,并跳过该替换项。

我的示例中的ABC只是一个基本情况,可以是任何字符序列,因此使用像match full sting这样的选项只能用。

1 个答案:

答案 0 :(得分:0)

您可以使用支持正则表达式的语言或工具,并使用预见

作为bash shell中的一个简单例子:

echo "ABCEE" | grep -P -o "ABC(?=[^D])"

输出“ ABC”(即找到匹配项)

其中:

echo "ABCDE" | grep -P -o "ABC(?=[^D])"

不-不匹配。

(?= ...)的意思是“跟随”,“ [^ D]”的意思是“除D之外的任何东西”。

使用捕获组可以捕获“ ABC”,从而变得更加复杂-查看正则表达式,您应该会找到很多选择。