其他分享
首页 > 其他分享> > 正则表达式排除写法

正则表达式排除写法

作者:互联网

1. 简单排除

[^a]*                       排除a

[^abc]*                    排除a,b,c \D                          排除数字 \S                          排除空格 [^\u4E00-\u9FA5]   排除汉字   2. 排除某个单词
/^((?!hello).)+$/    排除 hello ((?!天空).)*           排除 天空 \b(?!cat\b)\w+     排除 cat   3. 排除的写法结构   ^(?!排除判断).*key(?!排除判断).*$
4. 排除多个
^(?!.*(?:取消|撤销|删除)).*小微
(?!.*(?:abc|123))    排除abc或者123
^(?!.*(?:取消|撤销|删除)).*小微(?!.*(?:企业|贷款|快贷|商户|公司)).*$   例子:
1. 匹配不包含"天空",包含"花儿"的句子
import re
string = '太阳天空照,花儿对我笑'
result = re.findall(r'^(?:(?!天空).)*?花儿.*$', string)
print(result)
# []
string = '太阳空中照,花儿对我笑'
result = re.findall(r'^(?:(?!天空).)*?花儿.*$', string)
print(result)
# ['太阳空中照,花儿对我笑']
2. 匹配今天的天气,而不是明天的
import re
s1 = 'how is the weather today'
s2 = 'how is the weather tomorrow'

regex = r'(^.*weather(?:(?!tomorrow).)*$)'
result1 = re.findall(regex, s1)
result2 = re.findall(regex, s2)
print('result1: ', result1)
print('result2: ', result2)
# result1:  ['how is the weather today']
# result2:  []
3. 匹配&和;之间不含有test的字符
str = "hello &test1;test&qout;";
正则表达式:/&((?!test).)+;/g 匹配结果:&nbsp; 和 &qout;   4. 匹配不含有<img>标签的<div></div>标签
str = "<div id='1'><img class='xx'></div><div id='1'><input type=''text"></div>";
正则表达式: /<div[^>]*>((?!<img[^>]*>).)+</div>/g 匹配结果:<div id='1'><input type=''text"></div>   5. 不包含robots的句子
^(?!.*?robots).*$
6. 不以2009-07-08开头的条目
^(?!2009-07-08).*?$

 

 

出处:https://blog.csdn.net/xuyangxinlei/article/details/81359366      https://www.cnblogs.com/zongfa/p/14818734.html    https://www.zhihu.com/question/511356890      https://blog.csdn.net/j10a/article/details/73457309

标签:string,正则表达式,result2,花儿,排除,re,写法,findall
来源: https://www.cnblogs.com/mengff/p/16390372.html