1. 正则表达式对于程序员写代码的作用:
正确有序的使用正则表达式去阅读查询代码会事半功倍,编译移植开源软件程序的时候休要修改Makefile或者configure文件等等,需要有条件查找某些字符串,就必须用到正则表达式了!可见正则表达式对已一个程序员的左右非常重要!
2. 正则表达式查找例子:
[^abc]表示不包含a、b、c中任意字符.
例如我要查找一个类的成员,但这个类是实例化类,不是指针,即不是“->”引用的,而是用 "."引用的,可以使用: [^>{[(_]member ##意思是查找member,目标是xxx.member,而不是_member,xxx->member
\bsprintf\b.(db).
这个例子查找spritntf后面跟着(db)的语句,也可以写成\bsprintf\b.*db,和上面不一样的就是,上面的可以跟着多个"db",\bsprintf\b.*db后面只能跟着1个"db"
\b((?!abc)\w)+\b
查找不包含字符串的句子,正则表达式查找。只要不包含"abc"的都会被选中!
\b((?!abc)xyz)+\b
查找前面不包含字符串abc,而且后面完整匹配xyz的内容, 这个例子是在全局查找含有xyz字符串,但是xyz前面不能含有abc的字符串。例如 "efg_oooooxyz" 回被选中。而:"abc1234xyz"不会被选中
(?!static)(?!void).*\bevent\b ?[^()]
匹配整个单词event,正则表达式查找包含指定和查找不包含特定字符串的写法。这里我们要查找的一个完整的单词event,前面不能有“static”和“void”, 后面不能有‘(’‘)’
如果不理解,请看看下面正则表达式的解释:
\b 匹配单词的开始或结束; ?!exp 零宽负向先行断言,只会匹配后缀exp不存在的位置; \w 匹配字母或数字或下划线或汉字; + 重复一次或更多次; \b((?!abc)\w)+\b 匹配由字母或数字或下划线或汉字组成的字串,但字串中不能出现abc。 .换行外的任意字符 *匹配任意次数