python3 正则匹配[^abc]和(?!abc)的区别(把多个字符作为一个整体匹配排除)

目的:把数字后面不为abc的字符串找出来

如1ab符合要求,2abc不符合要求

 1 str = ‘1ab‘
 2 out = re.match(r‘\d+(?!abc)‘,str)
 3
 4 str1 = ‘1abc‘
 5 out1 = re.match(r‘\d+(?!abc)‘,str1)
 6
 7 print(‘out:‘,out)
 8 print(‘out1:‘,out1)
 9 #
10 #out: <_sre.SRE_Match object; span=(0, 1), match=‘1‘>
11 #out1: None
12 #

如果把(?!abc)改为[^abc],效果如下:

 1 str = ‘1ab‘
 2 out3 = re.match(r‘\d+[^abc]‘,str)
 3
 4 str1 = ‘1abc‘
 5 out4 = re.match(r‘\d+[^abc]‘,str1)
 6
 7 print(‘out:‘,out3)
 8 print(‘out1:‘,out4)
 9
10 #
11 #out3: None
12 #out4: None
时间: 2024-10-06 07:43:04

python3 正则匹配[^abc]和(?!abc)的区别(把多个字符作为一个整体匹配排除)的相关文章

[算法系列之十二]字符串匹配之蛮力匹配

引言 字符串匹配是数据库开发和文字处理软件的关键.幸运的是所有现代编程语言和字符串库函数,帮助我们的日常工作.不过理解他们的原理还是比较重要的. 字符串算法主要可以分为几类.字符串匹配就是其中之一.当我们提到字符串匹配算法,最基本的方法就是所谓的蛮力解法,这意味着我们需要检查每一个文本串中的字符是否和匹配串相匹配.一般来说我们有文本串和一个匹配串(通常匹配串短于文本串).我们需要做的就是回答这个匹配串是否出现在文本串中. 概述 字符串蛮力匹配法的原理非常简单.我们必须检查匹配串的第一个字符与文本

正则匹配中 ^ $ 和 \b 的区别

正则匹配中 ^ $ 和 \b 的区别 ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可组成单词的字符(包括字符串的开始和结束)为另一种类型因此\b\d\b可以匹配"%3%"中的3,但不能匹配"23"中的任意一个数字

Python3正则匹配re.split,re.finditer及re.findall函数用法详解

这篇文章主要介绍了Python3正则匹配re.split,re.finditer及re.findall函数用法,结合实例形式详细分析了正则匹配re.split,re.finditer及re.findall函数的概念.参数.用法及操作注意事项,需要的朋友可以参考下 本文实例讲述了Python3正则匹配re.split,re.finditer及re.findall函数用法.分享给大家供大家参考,具体如下: re.split re.finditer re.findall @(python3) 官方 r

转转转---js正则表达exec与match的区别说明

正则表达式对象有两个定义方式:: 1.第一种定义: new RegExp(pattern, attributes);如var reg = new RegExp("abc","g") 其中pattern为表示表达式内容,如上表示匹配abc attributes:g,全局匹配,i不区分大小写,m执行多行匹配,用最多的为g和i 2.第二种定义:/pattern/attributes. 如:var reg = /abc/g; 正则表达的规则一些规则在此不再说明,只记录exe

Python3正则去掉HTML标签

Python3正则去掉HTML标签 1.引用一段代码 import re html = '<pre class="line mt-10 q-content" accuse="qContent">目的是通过第一次soup.find按class粗略筛选并通过soup.find_all筛选出列表中的a标签并读入href和title属性<br><br>但是由于目标链接可能有图片链接,而这是我不想要的.请问如何去除?<br>&l

Qt见解:Post 与 Get 的区别(Get将参数直接与网址整合为一个整体,而Post则将其拆为两个部分)

第一次接触Qt的Http项目,今天看了一下Post和Get的基本使用方法,就开始尝试了.原先以为Post专门用于向服务器发送请求,然后接收服务器应答的: 而Get只是单纯从服务器获取资源,比如下载这个网页,获得网页上存储的资源等.但是做项目的时候,测试的结果彻底地证明了我的天真和误解. 事实上,Post和Get都是用于向服务器发送请求的,两者都可以带参数,只不过方式略有不同而已.不同之处就在于,Get将参数直接与网址整合为一个整体,而Post则将其拆为两个部分,一部分是网址,另一个部分才是参数,

[ jquery 过滤器 prev([expr]) ] 此方法用于在选择器的基础之上搜索查找取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合

取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合,可以用一个可选的表达式进行筛选.只有紧邻的同辈元素会被匹配到,而不是前面所有的同辈元素 expr 用于筛选前一个同辈元素的表达式 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <

[ jquery 过滤器 siblings(expr) ] 此方法用于在选择器的基础之上搜索取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,可以用可选的表达式进行筛选

此方法用于在选择器的基础之上搜索取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,可以用可选的表达式进行筛选 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='

children([expr]) 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。

children([expr]) 概述 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合. 可以通过可选的表达式来过滤所匹配的子元素.注意:parents()将查找所有祖辈元素,而children()只考虑子元素而不考虑所有后代元素.大理石量具哪家好 参数 exprStringV1.0 用以过滤子元素的表达式 示例 描述: 查找DIV中的每个子元素. HTML 代码: <p>Hello</p><div><span>Hello Again</