2016-04-22 2 views
0

У меня есть текст, где есть 6 вхождений «Морской».Первое появление слова в тексте с JavaScript Regex

Я хочу найти в этом тексте первое вхождение слова и заменить его, например, «Plane».

Я пытался с этим RegEx:

var myRegEx = new RegExp("^(.*)Marine(.*)$","gmi"); 

Но это дает мне 4-й, 5-й, 6-й вхождений ...

+0

они разделены пространством? они могут быть где угодно? – rock321987

+0

Удалите 'g' из флага' RegExp' – putvande

+0

@putvande: Нет, первый '. *' Должен быть превращен в шаблон сопоставления ленивых точек (следуя текущей логике). Похоже, OP приходит из Java :) –

ответ

1

Я хочу найти в этом тексте первое вхождение слова и заменить его, например, «Plane».

var myRegEx = new RegExp("Marine","i"); 

или

\\b граница слова помогает сделать точное соответствие.

var myRegEx = new RegExp("\\bMarine\\b","i"); 

или

str.replace(/\bmarine\b/i) 
+0

Танки, это работает! :) –

3

Вы можете сделать это без regex также

"Marine Marine Marine Marine Marine Marine".replace('Marine','Plane') 
//"Plane Marine Marine Marine Marine Marine" 
+1

, но это не приведет к нечувствительности к регистру. –

+1

Да, но это было не в необходимости;) – JagsSparrow

+0

Я видел 'i' в своем регулярном выражении .. И также это заменило бы' Marine' на 'Marinea' –

Смежные вопросы