Regex Perl正则表达式-gc修饰符是什么意思?
我有一个正则表达式,它与以下文本匹配:Regex Perl正则表达式-gc修饰符是什么意思?,regex,perl,modifier,Regex,Perl,Modifier,我有一个正则表达式,它与以下文本匹配: $text =~ m/$regex/gcxs 现在我想知道,'gc'修饰语是什么意思: 我已搜索并发现,gc表示“允许在失败的/g匹配后继续搜索” 这我不清楚。继续搜索意味着什么 据我所知,这意味着如果/g搜索失败,将从一开始就开始匹配。但是/g修改器是否与整个字符串匹配?使用/g修改器来记住“字符串中的位置”,这样您就可以增量处理字符串。e、 g my $txt = "abc3de"; while( $txt =~ /\G[a-z]/g ) {
$text =~ m/$regex/gcxs
现在我想知道,'gc'修饰语是什么意思:
我已搜索并发现,gc表示“允许在失败的/g匹配后继续搜索”
这我不清楚。继续搜索意味着什么
据我所知,这意味着如果/g搜索失败,将从一开始就开始匹配。但是/g修改器是否与整个字符串匹配?使用
/g
修改器来记住“字符串中的位置”,这样您就可以增量处理字符串。e、 g
my $txt = "abc3de";
while( $txt =~ /\G[a-z]/g )
{
print "$&";
}
while( $txt =~ /\G./g )
{
print "$&";
}
由于该位置在匹配失败时重置,因此将输出上述信息
abcabc3de
/c
标志不会重置失败匹配的位置。因此,如果我们像这样向第一个正则表达式添加/c
my $txt = "abc3de";
while( $txt =~ /\G[a-z]/gc )
{
print "$&";
}
while( $txt =~ /\G./g )
{
print "$&";
}
我们最终的结局是
abc3de
示例代码:在perldoc perlre中
全局匹配,匹配失败后保留当前位置。与i、m、s和x不同,这两个标志影响正则表达式的使用方式,而不是正则表达式本身。有关g和c修饰符的进一步解释,请参见perlretut中的Perl中使用正则表达式
指定的ref导致:
此URI有一个标题为“全局匹配”的小节,其中包含一个小型教程/工作示例,包括:
匹配失败或更改目标字符串将重置位置。如果不希望在匹配失败后重置位置,请添加//c,如/regexp/gc中所示。字符串中的当前位置与字符串关联,而不是与regexp关联。这意味着不同的字符串具有不同的位置,可以单独设置或读取它们各自的位置
嗯
Lee此答案已添加到“修饰符”下的。