我想在perl中匹配給定字符串的子字符串。匹配子字符串與Perl中的空格
當子字符串包含空格時匹配失敗。
例子:
請考慮以下字符串變量:
var = "test [abc], def, xyz,"
表達:
($var=~ m/test [abc]/)
沒有空格工作正常不返回1.
字符串:
Example:
($var=~ m/def/)
is returning 1.
請幫忙。
感謝
我想在perl中匹配給定字符串的子字符串。匹配子字符串與Perl中的空格
當子字符串包含空格時匹配失敗。
例子:
請考慮以下字符串變量:
var = "test [abc], def, xyz,"
表達:
($var=~ m/test [abc]/)
沒有空格工作正常不返回1.
字符串:
Example:
($var=~ m/def/)
is returning 1.
請幫忙。
感謝
[
和]
在正則表達式中有特殊含義。他們定義字符類。如果你想匹配[
或]
,你需要轉義:
$var=~ m/test \[abc\]/
[]
在正則表達式字符類。你必須逃生者:
($var=~ m/test \[abc\]/)
在您的例子test [abc]
將匹配test a
,test b
或test c
。原因[abc]
意味着任何a,b,c
謝謝,但什麼情況下做的 - 無論是LHS和RHS包含變量:($ VAR =〜M/$ some_var /) ,其中some_var是「test [abc]」或任何其他字符串 –
首先在變量'$ some_var'內跳出'[]'。然後在正則表達式中使用它。 –
謝謝。在這裏,我使用「真正的字符串」作爲示例。如果「test [abc]」也包含在變量中,我該怎麼辦? –
例如:($ var =〜m/$ some_var /),其中some_var是「test [abc]」或任何其他字符串 –
@SandeepSingh您可以使用引用序列:'$ var =〜m/\ Q $ some_var \ E /'這樣,你會直接匹配'$ some_var'的值。 – Jerry