本文共 726 字,大约阅读时间需要 2 分钟。
-- Start
\G 通常应用于迭代操作中,它指示上次匹配的结束位置或本次匹配的开始位置。第一次迭代时,\G 匹配字符串的开始。如果在迭代的过程中正则表达式不能匹配成功,\G 会重新指向字符串的开始位置。但是如果我们指定了 Perl 的 /c 修饰符,那么即使正则表达式匹配失败了,\G 将不会重新设置。下面是一个简单的例子。
#!/usr/bin/perlmy $testText = "I love regular expression."; # 测试文本while(not $testText =~ m/\G\z/gc) # 到达文本末尾就结束{ if($testText =~ m/\G(reg\w+\b)/gc) # 查找以 reg 开头的单词 { print "$1\n"; # 反向引用,$1 引用括号中匹配的内容 } elsif($testText =~ m/\G(exp\w+\b)/gc) # 查找以 exp 开头的单词 { print "$1\n"; } elsif($testText =~ m/\G(.)/gc) # 跳过一个字符,没有这个分支会死循环 { print "$1\n"; }}虽然上面这个例子没有实用价值,但我们可以很容易的扩展,我们可以从文件中读取测试文本,多个 if 分支可以分析文件并把结果打印的新的文件中。
--更多参见: -- 声 明:转载请注明出处 -- Last Updated on 2012-05-12 -- Written by ShangBo on 2012-05-12 -- End