正则表达式中的括号

时间:2011-05-16 09:35:33

标签: javascript regex

我想比较两个字符串,但我对Brackets有点问题。 我想要寻找的字符串如下所示:

CAPPL:LOCAL.L_hk [1] .vorlauftemp_soll

引用那些括号似乎毫无用处。

我用这段代码尝试了它

var regex = new RegExp("CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll","gi");
var value = "CAPPL:LOCAL.L_hk[1].vorlauftemp_soll";
regex.test(value);

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:5)

没用,因为你正在使用字符串。你也需要逃避反斜杠:

var regex = new RegExp("CAPPL:LOCAL.L_hk\\[1\\].vorlauftemp_soll","gi");

或使用正则表达式文字:

var regex = /CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll/gi

JavaScript中会忽略未知的转义字符,因此"\["会生成与"["相同的字符串。

答案 1 :(得分:2)

value中,您有(1)而不是[1]。因此,如果您希望正则表达式匹配而它不匹配,那就是因为它。

另一个问题是你在表达式中使用""。要在JavaScript中编写正则表达式,请使用/.../g代替"..."

您可能还想在表达式中转义点。 .表示“任何不是换行符的字符”。另一方面,您希望点按字面匹配:\.

答案 2 :(得分:1)

您正在使用字符串生成正则表达式(其中[是可以使用\转义的特殊字符)(其中\是特殊字符)。< / p>

var regex = /CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll/gi;