2013-04-17 3 views
-1

Я новичок в Regex и пытаюсь реализовать Regex, чтобы заменить соответствующий шаблон в строке только тогда, когда у нее есть (- открытые круглые скобки с использованием Javascript, например, если у меня есть строкаКак заменить подстроку открытыми круглыми скобками (

IN(INTERM_LEVEL_IN + (int)X_ID) 

Я хотел бы только, чтобы выделить первый IN (в строке. Не в INTERM_LEVEL_IN (2 ины здесь) и Int.

что такое Regex для достижения этой цели?

+2

Это не имеет никакого отношения к jQuery. – Bergi

+0

Пожалуйста, покажите нам, что вы пробовали, и подсвечивали не те детали. – Bergi

ответ

1

скобку в регулярные выражения имеют особое значение (группы суб-захвата), s o когда вы хотите, чтобы их интерпретировали буквально, вам нужно их избежать с помощью \ перед ними. Регулярное выражение IN\( будет соответствовать строке IN(.

2

Чтобы соответствовать открывающей скобе, вам просто нужно сбежать от него: IN\(.

Например, работает это в Firebug консоли:.

enter code here "IN (INTERM_LEVEL_IN + (ИНТ) X_ID)" заменить (/ (IN() /, 'тест'); `

Will результат:

>>> "IN(INTERM_LEVEL_IN + (int)X_ID)".replace(/(IN\()/, 'test'); 
"testINTERM_LEVEL_IN + (int)X_ID)" 
+0

Спасибо, что ответили на мой вопрос! Я думаю, что если я заменяю один раз в строке, это работает! как реализовать регулярное выражение с глобальной заменой ptrnX = '/ (IN \() /'; TempText.replace (новый RegExp (ptrnX, 'g'), "test") –

+0

Не забывайте, что ваша обратная косая черта открывающий кронштейн после IN – LeonardChallis

0

вы можете использовать только обычный старый Javascript для регулярных выражений, простой IN\( будет работать на примере вы дали (see here), но я подозреваю, что ваша ситуация более сложная, чем в этом случае, вы. необходимо определить точно то, что вы пытаетесь сопоставить, и то, что вы не хотите сопоставлять.

1

Следующая должна соответствовать только IN (в начале строки:

/^IN\(/ 

Следующая будет соответствовать IN (который не предшествует любой алфавитно-цифровой символ подчеркивания:

/[a-zA-Z0-9_]IN\(/ 

И наконец, следующее соответствие будет соответствовать любому экземпляру IN (независимо от того, что предшествует ему:

/IN\(/ 

Итак, сделай выбор. Если вам интересно узнать больше о регулярном выражении, вот хороший учебник: http://www.regular-expressions.info/tutorial.html

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