原子
来源:互联网 发布:怎么查询扣分情况淘宝 编辑:程序博客网 时间:2024/04/29 18:32
每个正则表达式中至少要包含一个原子,常见的原子有以下类:
- 普通字符
- 非打印字符
- 通用字符
- 原子表
1.普通字符作为原子
数字 ,大小写字母,下划线等都可以作为原子使用。
如:
import re pattern="python" string="http://www.python.com" result1=re.search(pattern,string) print(result1)
输出结果为:
<_sre.SRE_Match object; span=(11, 17), match='python'>
在上面的程序中,我们使用正则表达式,所以导入re模块
接着我们设置正则表达式,将正则表达式的值赋予变量pattern,随后我们定义一串字符
然后使用re模块里的search()函数从string里面匹配对应的正则表达式
结构也成功的匹配到了”python”
2.非打印字符作为原子
非打印字符指的是一些在字符串里用于控制的符号,比如换行符等
\n 用于匹配一个换行符 \t 用于匹配一个制表符
可以输入以下代码来实现换行符的匹配:
import re pattern="\n" string='''abcd efghigk''' result1=re.search(pattern,string) print(result1)
输出结果如下:
>>><_sre.SRE_Match object; span=(6, 7), match='\n'>
字符串变量string中包含一个换行符,所以进行换行符匹配,就可以匹配成功。
我们将换行符去掉后:
import repattern="\n" string='''abcdefghigk''' result1=re.search(pattern,string) print(result1)
输出为:
>>>None
因为删掉了换行,所以无法匹配成功。
3.通用字符作为原子
常见的通用字符:
符号 含义\w 匹配任意一个字母,数字或下划线\W 匹配除字母,数字和下划线以外的任意一个字符\d 匹配任意一个十进制数\D 匹配除十进制外的任意一个其他字符\s 匹配任意一个空白字符\S 匹配除空白字符以外的任意一个其他字符
我们可以使用”\w\dpython\w”对”python”字符进行匹配
字符后是一个字母,数字或下划线,字符前一个任意的十进制数,再前一位是一个字母,数字或下划线格式的字符串
如”99python”,”q8python_”都可以匹配成功
我们输入如下代码:
import repattern="\w\dpython\w" string='jajdiqw98adj789pythony_shdia' result1=re.search(pattern,string) print(result1)
运行结果如下:
>>><_sre.SRE_Match object; span=(13, 22),match='89python_'>
我们可以看到匹配结果成功,match=’89python’
4.原子表
在Python中,原子表由[]表示,比如[abc]就是一个原子表,这个原子表定义了3个原子,这三个原子地位平等
如我们定义正则表达式为:”[abc]py”
对应的源字符串是”gdbpyasd”
此时如果用re.search()函数进行匹配出来的结果就是
“bpy”,因此要py前一位是”a b c “子母中任意一个就可以匹配成功
[^]表示除了括号里面的原子都可以匹配
比如“[^abc]py”能匹配“xpy”,但不能匹配”apy”
我们输入以下代码:
import repattern1="\w\dpython[abc]\w"pattern2="\w\dpython[^abc]\w"string='ashdjqh45h3pythonch' result1=re.search(pattern,string) print(result1) print(result2)
运行结果如下:
>>><_sre.SRE_Match object; span=(9, 19), match='h3pythonch'>None
我们发现第一个匹配成功了,第二个失败,因为[^abc]使”c”无法被匹配
- 原子
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子操作
- 原子性
- 原子操作
- 原子操作
- 原子函数
- 原子操作
- 原子性
- 原子操作
- 原子操作
- 原子上下文
- 原子操作
- 原子操作
- 最长回文子串(Longest Palindromic Substring)
- ubuntu17.04 gnome 的简单使用
- UVA 1328 Period
- Maven学习笔记---maven整合web项目
- LoadRunner 中实现MD5加密
- 原子
- 【DP】子串的种类数
- 第一条博客
- 操作系统——分页式内存管理
- SpringBoot之整合其它热门技术详细总结
- LeetCode 136. Single Number
- 将jar包加入本地Maven库
- 18读书笔记之使用SQL 操作数据库
- 操作系统——分段式内存管理