如何用开括号替换子串(

时间:2013-04-17 13:28:19

标签: javascript regex string replace

我是一个正则表达式的新手并尝试使用Regex来替换字符串中的匹配模式,只有当它有一个( - 使用Javascript打开括号时。例如,如果我有一个字符串

IN(INTERM_LEVEL_IN + (int)X_ID)

我只想突出显示第一个IN(在字符串中。不是INTERM_LEVEL_IN(此处为2个)和int。

要完成此任务的正则表达式是什么?

4 个答案:

答案 0 :(得分:2)

要匹配左括号,您只需要将其转义:IN\(

例如,在Firebug控制台中运行它:

enter code here“IN(INTERM_LEVEL_IN +(int)X_ID)”。replace(/(IN()/,'test');`

将导致:

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

答案 1 :(得分:1)

正则表达式中的括号具有特殊含义(子捕获组),因此当您希望它们按字面解释时,您必须先使用\来转义它们。正则表达式IN\(将匹配字符串IN(

答案 2 :(得分:1)

以下内容应仅匹配IN(在行的开头:

/^IN\(/

以下内容与IN匹配(前面没有任何字母数字字符或下划线:

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

最后,以下内容将匹配IN的任何实例(无论它在什么前面:

/IN\(/

所以,请选择。如果您有兴趣了解有关正则表达式的更多信息,请参阅以下好教程:http://www.regular-expressions.info/tutorial.html

答案 3 :(得分:0)

你可以只使用常规的旧Javascript进行正则表达式,一个简单的IN\(可以用于你给出的示例(see here),但我怀疑你的情况比这更复杂。在这种情况下,您需要定义完全您要匹配的内容以及您不想匹配的内容。