我正在尝试将子字符串与perl中的给定字符串匹配。
当子字符串包含空格时,匹配失败。
示例:
请考虑以下字符串变量:
var = "test [abc], def, xyz,"
表达式:
($var=~ m/test [abc]/)
不会返回1.
没有空格的字符串工作正常:
Example:
($var=~ m/def/)
is returning 1.
请帮忙。
由于
答案 0 :(得分:5)
[
和]
具有特殊含义。它们定义了字符类。如果您想匹配[
或]
,则需要将其转义:
$var=~ m/test \[abc\]/
答案 1 :(得分:2)
[]
是正则表达式中的字符类。你必须逃脱那些:
($var=~ m/test \[abc\]/)
在您的示例中,test [abc]
将匹配test a
,test b
或test c
。原因[abc]
表示a,b,c