我有一个正则表达式匹配一些文本:
- $text =~ m/$regex/gcxs
现在我想知道’gc’修饰符是什么意思:
对我来说这不清楚继续搜索意味着什么?
据我所知,这意味着如果/ g搜索失败,则开始匹配。但是/ g修饰符是否匹配整个字符串?
/ 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