Replace 如何将ABC替换为ABCD而不是ABCD替换为ABCDD

Replace 如何将ABC替换为ABCD而不是ABCD替换为ABCDD,replace,Replace,我有一些大的文本文件,我需要用replace all做一些文本替换 但是,替换的文本包含创建无限循环的原始文本 我需要一些方法或程序,做一个全部替换,并检查是否已完成替换。检查找到的ABC匹配项是否已经是ABCD的一部分,并跳过该替换项 我的示例中的ABC只是一个基本的大小写,可以是任意字符序列,因此使用“仅匹配整个sting”这样的选项是不起作用的。您可以使用支持正则表达式的语言或工具,并使用向前看 作为bash shell中的一个简单示例: echo "ABCEE" | grep -P -o

我有一些大的文本文件,我需要用replace all做一些文本替换

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

我需要一些方法或程序,做一个全部替换,并检查是否已完成替换。检查找到的ABC匹配项是否已经是ABCD的一部分,并跳过该替换项


我的示例中的ABC只是一个基本的大小写,可以是任意字符序列,因此使用“仅匹配整个sting”这样的选项是不起作用的。

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

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

echo "ABCEE" | grep -P -o "ABC(?=[^D])"
输出“ABC”(即找到匹配项)

其中:

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

(=…)表示“后跟”,而“[^D]”表示“除D以外的任何东西”


您可以使用捕获组来获取更复杂的信息,捕获组将捕获“ABC”-查看正则表达式,您会发现很多选项。

使用哪种计算机语言?纯文本?(记事本)我不是想开发它,只是想对现有文本/代码进行更改。有更好的论坛来回答这个问题吗?谢谢。堆栈溢出用于解决编程问题。我不知道有没有比这更好的网站。。。大概在询问之前,你应该先阅读他们网站的名称。具体来说,
[^D]
表示“一个字符不是D”,因此你的表达方式本身不会与
ABC
匹配。是的,你是对的。我想如果你说的是文本行,你可以用“ABC(?=([^D]|^))”。哈哈,投了反对票。。。。或者你可以直接使用ABC(?!D)。谢谢,效果很好。似乎许多程序和IED都支持正则表达式(EditPad lite,Notepad++),但问题是如何打开它。让事情变得容易多了。再次感谢。