2014-09-26 65 views
0

我想通过替换另一个字符串找到的字符串来搜索字符串,但保留找到以下字符。用不同长度替换找到的字符串?

我成功地使用了一个测试,然后是正则表达式,但我宁愿只用一个正则表达式来完成。

实施例:

myVar.replace(/abc[ZER]/, x¿); 

其中¿是 “Z”, “E” 或 “R”。

后市展望:

if i test abcZopu -> xZopu 
if i test abcWopu -> no match 

回答

1
abc(?![^ZER]) 

尝试this.See演示。

http://regex101.com/r/lS5tT3/43

通过whateveryouwant

+0

@ sb22哪个正则表达式的风格做动作脚本使用? – vks 2014-09-26 09:34:27

+0

@vks ECMAScript 3(修订版262),所以它基本上与javascript相同。 – Unihedron 2014-09-26 09:37:07

+0

@Unihedron kk ...只是好奇他为什么选择简单的正则表达式vs向前看...但是javascript支持lookaheads :) – vks 2014-09-26 09:38:49

1

只需更换只要捕获其存在的字符类中的字符和替换匹配的字符串与x加组索引1.

> "abcZopu".replace(/abc([ZER])/g, 'x$1') 
'xZopu' 
> "abcWopu".replace(/abc([ZER])/g, 'x$1') 
'abcWopu' 
内的字符

在第二个示例中,确切的输入被打印为输出,因为该字符串上没有任何替换。

+0

谢谢,但我的坏处是我忘记指定:不是PHP,AS3。 – sb22 2014-09-26 09:24:48

+0

它不是PHP。这是JavaScript。 – 2014-09-26 09:28:28

+0

@ sb22然后使用该标签? – Unihedron 2014-09-26 09:32:25