-1

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

IN(INTERM_LEVEL_IN + (int)X_ID)

我只想突出显示字符串中的第一个 IN(。不是 INTERM_LEVEL_IN (这里是 2 个) 和 int。

实现此目的的正则表达式是什么?

4

4 回答 4

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)"
于 2013-04-17T13:32:28.043 回答
1

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

于 2013-04-17T13:37:13.377 回答
1

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

于 2013-04-17T13:32:22.993 回答
0

您可以只使用常规的旧 Javascript 进行正则表达式,一个简单IN\(的示例适用于您提供的示例(请参见此处),但我怀疑您的情况比这更复杂。在这种情况下,您需要准确定义要匹配的内容和不想匹配的内容。

于 2013-04-17T13:35:22.517 回答