我是perl脚本的初学者。 我知道连字符( - )用于指定范围。
但如果在表达式的开头提到它会怎么样?
示例:
if ($_ =~ /-\n/)
//do something
如何解释上面的代码?
“如果参数等于换行符的范围”? (不,这是奇怪的理解: - /)
请帮忙。
答案 0 :(得分:7)
在[]之外 - 意思是“ - ”据我所知,它只表示[]块内的范围。
这是我找到的更完整的答案
How to match hyphens with Regular Expression?(看第二个答案)
因此表达式应匹配a - 后跟换行符或以 -
结尾的行答案 1 :(得分:5)
该模式将匹配连字符"-"
,后跟换行符\n
。
连字符在字符类中被视为范围运算符,如perldoc perlrequick
中所述:
特殊字符
'-'
充当角色中的范围运算符 类,以便笨拙的[0123456789]
和[abc...xyz]
成为 苗条的[0-9]
和[a-z]
:/item[0-9]/; # matches 'item0' or ... or 'item9' /[0-9a-fA-F]/; # matches a hexadecimal digit
如果
'-'
是字符类中的第一个或最后一个字符,那么它就是 作为一个普通人物对待。
答案 2 :(得分:4)
这意味着:
如果有一个连字符后面紧跟一个换行符,无论这对字符位于字符串内的哪个位置。