Regex 这个表达式在Perl正则表达式中做什么?
我有三个问题:Regex 这个表达式在Perl正则表达式中做什么?,regex,perl,Regex,Perl,我有三个问题: ~m[]和~m/之间有什么区别 为什么如果删除()结果会不同 结尾处的g是什么意思 ~m[]和~m/是相同的,它们是边界符号 标量变量$substr嵌入到括号中,这意味着您可以通过打印$1将匹配的值嵌入到括号中 符号g表示全局匹配 /../、m/../和m[…]之间没有区别。指定m时,可以使用您选择的分隔符/…/是标准的,但有时使用其他代码更具可读性。例如,比较 $_ = ~m [($substr)]g; 与 ()是捕获。它们捕获与内部模式匹配的文本。您可以通过$1访问第一次
~m[]
和~m/
之间有什么区别李>
()
结果会不同g
是什么意思~m[]
和~m/
是相同的,它们是边界符号$substr
嵌入到括号中,这意味着您可以通过打印$1
将匹配的值嵌入到括号中g
表示全局匹配/../
、m/../
和m[…]
之间没有区别。指定m
时,可以使用您选择的分隔符<代码>/…/是标准的,但有时使用其他代码更具可读性。例如,比较
$_ = ~m [($substr)]g;
与
()
是捕获。它们捕获与内部模式匹配的文本。您可以通过$1
访问第一次捕获的文本,通过$2
访问第二次捕获的文本。在列表上下文中,匹配运算符返回捕获的字符串
m[^http://]
m//g
用于查找所有匹配项<代码>m/记录在中
请注意,
$var=~m[…]
和$var=~m[…]
是非常不同的,您肯定想使用后者=~
后跟匹配运算符指定匹配运算符所匹配的变量。我建议查看
m[^http://]
$ perl -E'say for 'abcd' =~ /(.).(.)/;'
a
c
$ perl -E'say for "abc" =~ /(.)/;'
a
$ perl -E'say for "abc" =~ /(.)/g;'
a
b
c