博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
匹配的起始位置 \G
阅读量:4049 次
发布时间:2019-05-25

本文共 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

你可能感兴趣的文章
2020年终总结
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Clone Graph(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>