我是一个正则表达式的新手并尝试使用Regex来替换字符串中的匹配模式,只有当它有一个( - 使用Javascript打开括号时。例如,如果我有一个字符串
IN(INTERM_LEVEL_IN + (int)X_ID)
我只想突出显示第一个IN(在字符串中。不是INTERM_LEVEL_IN(此处为2个)和int。
要完成此任务的正则表达式是什么?
答案 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),但我怀疑你的情况比这更复杂。在这种情况下,您需要定义完全您要匹配的内容以及您不想匹配的内容。