正则表达式找程序实用例子:正则表达式匹配不报含指定字符串,匹配后面跟着指定字符串

时间:2022-08-20 18:49:29

 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。
   .换行外的任意字符
   *匹配任意次数