我是perl脚本的初学者.我知道连字符( - )用于指定范围.
但如果在表达式的开头提到它呢?
例:
if ($_ =~ /-\n/)
//do something
Run Code Online (Sandbox Code Playgroud)
如何解读上面的代码?
"如果参数等于换行范围"?(不,这是奇怪的理解: - /)
请帮忙.
在[]之外 - 意思是" - "据我所知,它只表示[]块内的范围.
这是我发现的更完整的答案
如何将连字符与正则表达式匹配? (看第二个答案)
所以表达式应匹配a - 后跟换行符或以 - 结尾的行 -
该模式将匹配连字符"-"
后跟换行符\n
.
连字符在字符类中被视为范围运算符,如下所述perldoc perlrequick
:
特殊字符
'-'
在字符类中充当范围操作符,因此笨拙[0123456789]
并[abc...xyz]
变得苗条[0-9]
而且[a-z]
:Run Code Online (Sandbox Code Playgroud)/item[0-9]/; # matches 'item0' or ... or 'item9' /[0-9a-fA-F]/; # matches a hexadecimal digit
如果
'-'
是字符类中的第一个或最后一个字符,则将其视为普通字符.