Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 升华文本查找和替换“;"富",;在所有情况和组合中,除非它变成另一个词,即;“foobar”;_Regex_Replace_Sublimetext3 - Fatal编程技术网

Regex 升华文本查找和替换“;"富",;在所有情况和组合中,除非它变成另一个词,即;“foobar”;

Regex 升华文本查找和替换“;"富",;在所有情况和组合中,除非它变成另一个词,即;“foobar”;,regex,replace,sublimetext3,Regex,Replace,Sublimetext3,我知道这是一个基本正则表达式的可能性,但我似乎无法确定要使用的正确表达式 我想做的是在一组不同的情况下找到并替换“foo”和“foo”,例如;abc_-foo,abc_-foo[something],abc-foo-something,以及所有不同的组合,除非它变成另一个单词,比如“foobar”。基本的“整词”搜索功能很接近,但在考虑变量和下划线时没有帮助 您可以使用否定的前瞻断言来完成此操作。使用regex search,foo(?!bar)将匹配foo的任何实例(后面没有bar),并且以下

我知道这是一个基本正则表达式的可能性,但我似乎无法确定要使用的正确表达式


我想做的是在一组不同的情况下找到并替换“foo”和“foo”,例如;abc_-foo,abc_-foo[something],abc-foo-something,以及所有不同的组合,除非它变成另一个单词,比如“foobar”。基本的“整词”搜索功能很接近,但在考虑变量和下划线时没有帮助

您可以使用否定的前瞻断言来完成此操作。使用regex search,
foo(?!bar)
将匹配foo的任何实例(后面没有bar),并且以下文本不是匹配的一部分,只有foo是。

匹配本身不包含单词字符的字符串实际上并不是那么简单:

如果您的语言支持,这是非常罕见的情况,那么很简单:

(?<!\w)foo(?!\w)

e、 g.在javascript语法中:

str.replace(/(^|[\W_])foo([\W_]|$)/g, "$1replacement$2");

这工作做得很好!你就是那个人,谢谢!轻微偏离主题:1美元和2美元是否告诉引擎在替换前后保持角色不变?在这种情况下,是的,但一般来说,这是捕获组1和组2的全部内容,而不仅仅是单个角色。。
str.replace(/(^|[\W_])foo([\W_]|$)/g, "$1replacement$2");