Javascript 正则表达式来查找模式并仅替换其中的一部分
我想知道如何使用RegEx找到一个模式并在JavaScript中替换其中的一部分 比方说,我想替换一些模式,比如说Javascript 正则表达式来查找模式并仅替换其中的一部分,javascript,regex,Javascript,Regex,我想知道如何使用RegEx找到一个模式并在JavaScript中替换其中的一部分 比方说,我想替换一些模式,比如说-foo,但是如果它后面有一个-,比如-foo-,但是只替换-foo 有人能详细解释一下实现它的正则表达式构造吗 我在这里没有找到详细的解释,只是用最少的解释编码。您需要使用积极的前瞻性(?=-)检查-之后-foo的存在,但不会使用它: var s=“-foo--foo”; 警报(s.replace(/-foo(?=-)/g,“REPLACED”)您需要使用一个积极的前瞻(?=-)
-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
。谢谢你的回答。成功了。我没想到会有这么简单的事情。我在搜索,遇到了一些小组或类似的事情,我没有真正理解,发现非常复杂,这就是我要求详细解释的原因。但你的答案要好得多。谢谢,伙计。不管谁投了反对票,请留下你的理由。否则,否决权就没有意义了。谢谢你的回答。成功了。我没想到会有这么简单的事情。我在搜索,遇到了一些小组或类似的事情,我没有真正理解,发现非常复杂,这就是我要求详细解释的原因。但你的答案要好得多。谢谢,伙计。不管谁投了反对票,请留下你的理由。否则,否决权就没有意义了。