2014-09-26 59 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