Javascript正则表达式捕获下一个单词

Javascript正则表达式捕获下一个单词,javascript,regex,Javascript,Regex,我正在搜索正则表达式,以查找“dog”之后的下一个单词,并将其删除 "123 dog rabbit cat".replace(myregex, ""); "123 dog cat" 谢谢 编辑:但是 "123 dog <b> ok</b> cat".replace(myregex, ""); “123狗正常猫”。替换(myregex,”; 不应该做任何事情您可以使用: "123 dog rabbit cat".replace(/dog (.*?)( |$)/, "d

我正在搜索正则表达式,以查找“dog”之后的下一个单词,并将其删除

"123 dog rabbit cat".replace(myregex, "");
"123 dog cat"
谢谢

编辑:但是

"123 dog <b> ok</b> cat".replace(myregex, "");
“123狗正常猫”。替换(myregex,”;
不应该做任何事情

您可以使用:

"123 dog rabbit cat".replace(/dog (.*?)( |$)/, "dog ");
您可以使用:

"123 dog rabbit cat".replace(/dog (.*?)( |$)/, "dog ");

最简单的方法是:

"123 dog rabbit cat".replace(/(dog) \w+/, '$1')

最简单的方法是:

"123 dog rabbit cat".replace(/(dog) \w+/, '$1')

到目前为止发布的表达式将在例如
123狗兔猫
上失败,因此我认为
\s+
\s+\w+
更准确:

console.log("123 dog     rabbit! cat".replace(/(dog)\s+\S+/, '$1'))  // 123 dog cat
console.log("123 dog     rabbit! cat".replace(/(dog)\s+\w+/, '$1'))  // 123 dog! cat

我添加了
到您的字符串,以显示
\S
\w
之间的差异,目前发布的表达式将在例如
123狗兔猫
上失败,因此我认为
\S+
\S+\w+
更准确:

console.log("123 dog     rabbit! cat".replace(/(dog)\s+\S+/, '$1'))  // 123 dog cat
console.log("123 dog     rabbit! cat".replace(/(dog)\s+\w+/, '$1'))  // 123 dog! cat

我添加了
到字符串中,以显示
\S
\w

之间的差异。将
*
更改为
*?
有助于避免贪婪。例如,“123只狗兔猫头鹰”将变成带有“.*”的“123只狗猫头鹰”,而带有“.*?”的“123只狗猫猫头鹰”。如果“dog”后面的单词位于字符串的末尾,例如“123 dog cat”,您可能还希望将尾部“”替换为
(|$)
,这样有助于将
*
更改为
*?
,使其不贪婪。例如,“123只狗兔猫头鹰”将变成带有“.*”的“123只狗猫头鹰”,而带有“.*?”的“123只狗猫猫头鹰”。你可能还想用
(|$)
替换尾随的“”,以防“dog”后面的单词位于字符串的末尾,例如“123 dog cat”。很好,我更喜欢WTK的答案,因为我需要排除其他模式:“123 dog cat”不应该删除dog后面的任何内容example@ca11111如前所述,如果“dog”后面正好有两个空格,那么该模式将失败。好的,我更喜欢WTK的答案,因为我需要排除其他模式:“123 dog cat”不应该删除dog后面的任何内容example@ca11111,如前所述,如果“dog”后面正好有两个空格,则该模式将失败