[英]Brackets in Regular Expression
我想將2個字符串相互比較,但是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);
有人可以幫助我嗎?
這是沒有用的,因為您正在使用字符串。 您還需要轉義反斜杠:
var regex = new RegExp("CAPPL:LOCAL.L_hk\\[1\\].vorlauftemp_soll","gi");
或使用正則表達式文字:
var regex = /CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll/gi
JavaScript中會忽略未知的轉義字符,因此"\\["
與"["
字符串相同。
在value
,您擁有(1)
而不是[1]
。 因此,如果您期望正則表達式匹配但不匹配,則正因為如此。
另一個問題是您在表達式中使用""
。 為了用JavaScript編寫正則表達式,請使用/.../g
而不是"..."
。
您可能還希望轉義表達式中的點。 .
表示“不是換行符的任何字符”。 另一方面,您希望點在字面上匹配: \\.
。
您正在使用字符串(其中\\
是特殊字符)生成正則表達式(其中[
是可以用\\
進行轉義的特殊字符)。
var regex = /CAPPL:LOCAL.L_hk\[1\].vorlauftemp_soll/gi;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.