在 perl 中,以下似乎返回匹配列表和匹配分组!
//g
规则:
在列表上下文中,
//g
返回匹配分组的列表,或者如果没有分组,则返回整个正则表达式的匹配列表
如何获得没有分组的匹配列表?
更新:
在 perl 中,正则表达式似乎返回所有与正则表达式部分()
匹配的内容,以及与整个术语匹配的内容。
出于分组(而不是捕获)目的,例如编写匹配“猫”或“狗”使用(?:cat|dog)
.
使用(cat|dog)
and not(?:cat|dog)
会将任何出现的“cat”或“dog”添加到结果列表中。
匹配括号: ( )
"badcat and baddog" =~ /bad(cat|dog)/g
结果:(badcat baddog cat dog)
单个cat
并被dog
添加到结果列表中,因为它们包含在匹配的括号中
不匹配的括号: (?: )
"badcat and baddog" =~ /bad(?:cat|dog)/g
结果是:(badcat baddog)