javascript - 正则表达式 - 仅完整的单词而不是特定字符之后

标签 javascript regex

我试图在一个字符串中找到完整的单词,但我在单词出现在连字符之后时遇到了问题。 如何创建正则表达式以忽略连字符后出现的单词?

var text = "google e-google alphagooglebeta google google";
var word = "google";
var regex = new RegExp("\\b" + word + "\\b", "g");
var result = text.replace(regex, "SUCCESS");

output: "SUCCESS e-SUCCESS alphagooglebeta SUCCESS SUCCESS"
expected output: "SUCCESS e-google alphagooglebeta SUCCESS SUCCESS"

最佳答案

您可以使用:

var text = "google e-google alphagooglebeta google google";
var word = "google";
var regex = new RegExp("(^|\\s)" + word + "(?=\\s|$)", "g");
var result = text.replace(regex, "$1SUCCESS");

console.log(result);
//=> SUCCESS e-google alphagooglebeta SUCCESS SUCCESS

正则表达式 /(^|\s)google(?=\s|$)/ 匹配 google 如果它前面有开始或空格。我们在捕获组中捕获这部分。

(?=\s|$) 是零宽度先行断言,它断言我们前面有一个空格或行尾。

关于javascript - 正则表达式 - 仅完整的单词而不是特定字符之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50765321/

相关文章:

javascript - Instagram 从电脑上传视频

javascript - 如何使用 Lodash 按多个键分组并将其值汇总到对象数组中?

javascript - Jquery ajax syntaxerror json.parse json 数据第 1 行第 1 列的意外字符

javascript - 如何匹配所有特殊字符并替换为自定义突出显示样式

Python 正则表达式 - 将名称与合法形式匹配

javascript - angular:调用 el.setAttribute 导致错误

javascript - 如何清除 firebase 上的 service-worker.js 缓存

iphone - 如何使用 RegexKitLite 删除任意两个单词之间的空格/空白?

python - 使用 Python 提取字符串中字符前的数字

javascript - 正则表达式删除评论结尾