Javascript 正则表达式来查找模式并仅替换其中的一部分

Javascript 正则表达式来查找模式并仅替换其中的一部分,javascript,regex,Javascript,Regex,我想知道如何使用RegEx找到一个模式并在JavaScript中替换其中的一部分 比方说,我想替换一些模式,比如说-foo,但是如果它后面有一个-,比如-foo-,但是只替换-foo 有人能详细解释一下实现它的正则表达式构造吗 我在这里没有找到详细的解释,只是用最少的解释编码。您需要使用积极的前瞻性(?=-)检查-之后-foo的存在,但不会使用它: var s=“-foo--foo”; 警报(s.replace(/-foo(?=-)/g,“REPLACED”)您需要使用一个积极的前瞻(?=-)

我想知道如何使用RegEx找到一个模式并在JavaScript中替换其中的一部分

比方说,我想替换一些模式,比如说
-foo
,但是如果它后面有一个
-
,比如
-foo-
,但是只替换
-foo

有人能详细解释一下实现它的正则表达式构造吗


我在这里没有找到详细的解释,只是用最少的解释编码。

您需要使用积极的前瞻性
(?=-)
检查
-
之后
-foo
的存在,但不会使用它:

var s=“-foo--foo”;

警报(s.replace(/-foo(?=-)/g,“REPLACED”)
您需要使用一个积极的前瞻
(?=-)
,它将检查
-
-foo
之后是否存在
-
,但不会使用它:

var s=“-foo--foo”;

警报(s.replace(/-foo(?=-)/g,“REPLACED”)正如第一张海报所说,您需要使用先行(?=)来检查附加字符。在这种情况下,您需要查找的字符是-,因此您的模式将使用前向,后跟-ie(?=-)。

正如第一张海报所说,您需要使用前向(?=)来检查其他字符。在这种情况下,您需要查找的字符是-,因此您的模式将使用前向,后跟-ie(?=-)。

如果要将
-foo
转换为
-bar
,则不必保留连字符并替换
foo
。你只要把整个东西换掉。我觉得你太复杂了。事实上,我需要替换
-foo-
,但我可以在它后面再加一个
-foo-
,比如:
-foo-
,所以我需要替换
-foo
,这样另一个也会被替换。我需要检查它后面是否有一个
-
,因为我可以有一个以
foo
开头的单词。我将它替换为一个
。我有很多模式需要评估,不仅仅是
foo
。如果你想把
-foo
变成
-bar
,那么你就不需要留下连字符来替换
foo
。你只要把整个东西换掉。我觉得你太复杂了。事实上,我需要替换
-foo-
,但我可以在它后面再加一个
-foo-
,比如:
-foo-
,所以我需要替换
-foo
,这样另一个也会被替换。我需要检查它后面是否有一个
-
,因为我可以有一个以
foo
开头的单词。我将它替换为
。我有很多模式需要评估,不仅仅是
foo
。谢谢你的回答。成功了。我没想到会有这么简单的事情。我在搜索,遇到了一些小组或类似的事情,我没有真正理解,发现非常复杂,这就是我要求详细解释的原因。但你的答案要好得多。谢谢,伙计。不管谁投了反对票,请留下你的理由。否则,否决权就没有意义了。谢谢你的回答。成功了。我没想到会有这么简单的事情。我在搜索,遇到了一些小组或类似的事情,我没有真正理解,发现非常复杂,这就是我要求详细解释的原因。但你的答案要好得多。谢谢,伙计。不管谁投了反对票,请留下你的理由。否则,否决权就没有意义了。