簡體   English   中英

正則表達式中的括號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM