我是一个正则表达式新手,并试图实现正则表达式来替换字符串中的匹配模式,只有当它有一个 ( - 使用 Javascript 的开括号。例如,如果我有一个字符串
IN(INTERM_LEVEL_IN + (int)X_ID)
我只想突出显示字符串中的第一个 IN(。不是 INTERM_LEVEL_IN (这里是 2 个) 和 int。
实现此目的的正则表达式是什么?
我是一个正则表达式新手,并试图实现正则表达式来替换字符串中的匹配模式,只有当它有一个 ( - 使用 Javascript 的开括号。例如,如果我有一个字符串
IN(INTERM_LEVEL_IN + (int)X_ID)
我只想突出显示字符串中的第一个 IN(。不是 INTERM_LEVEL_IN (这里是 2 个) 和 int。
实现此目的的正则表达式是什么?
要匹配左括号,您只需将其转义: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)"
The following should only match IN( at the beginning of a line:
/^IN\(/
The following would match IN( that is not preceded by any alphanumeric character or underscore:
/[a-zA-Z0-9_]IN\(/
And finally, the following would match any instance of IN( no matter what precedes it:
/IN\(/
So, take your pick. If you're interested in learning more about regex, here's a good tutorial: http://www.regular-expressions.info/tutorial.html
正则表达式中的括号具有特殊含义(子捕获组),因此当您希望它们被逐字解释时,您必须在它们\
之前使用 a 来转义它们。正则表达式IN\(
将匹配字符串IN(
。
您可以只使用常规的旧 Javascript 进行正则表达式,一个简单IN\(
的示例适用于您提供的示例(请参见此处),但我怀疑您的情况比这更复杂。在这种情况下,您需要准确定义要匹配的内容和不想匹配的内容。