首页 / 正则 / python正则表达式的介绍
python正则表达式的介绍
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python正则表达式的介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2409字,纯文字阅读大概需要4分钟。
内容图文
re模块的使用
re.match从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None。
import re
# re.match(正则表达式,要匹配的字符串)
result = re.match("hello","helloworld")
print(result) # <re.Match object; span=(0, 5), match='hello'>
# 可以使用group方法来提取数据
print(result.group()) # hello
或者这样写
import re
# 这样避免多次定义正则表达式
result = re.compile("hello")
result .match("helloworld")
print(result.group())
表示字符
字符 | 功能 |
---|---|
. | 匹配任意一个字符(除了\n) |
[ ] | 匹配[ ]中列举的字符 |
\d | 匹配数字,即0-9 |
\D | 匹配非数字,即不是数字 |
\s | 匹配空白,即空格、tab键 |
\S | 匹配非空白 |
\w | 匹配单词字符,即0-9、a-z、A-Z |
\W | 匹配非单词字符 |
表示数量
字符 | 功能 |
---|---|
* | 匹配前一个字符出现0次或无限次,即可有可无 |
+ | 匹配前一个字符出现1次或无限次,即至少出现一次 |
? | 匹配前一个字符出现1次或0次,即要么有1次,要么没有 |
{m} | 匹配前一个字符出现m次 |
{m,} | 匹配前一个字符至少出现m次 |
{m,n} | 匹配前一个字符出现从m到n次 |
表示边界
字符 | 功能 |
---|---|
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
\b | 匹配一个单词的边界 |
\B | 匹配非单词边界 |
匹配分组
字符 | 功能 |
---|---|
| | 匹配左右任意一个表达式 |
(ab) | 将括号中的字符作为一个分组 |
\num | 引用分组num匹配到字符串 |
(?P<name>) | 给分组起别名 |
(?P=name) | 引用别名为name的分组匹配到字符串 |
贪婪和非贪婪
python中数量词默认是贪婪的,总是尝试匹配尽可能多的字符。非贪婪则相反,总是尝试尽可能少的字符。
在*、?、+、{m,n}后面加上?,使贪婪变成非贪婪。
import re
re.match(r"aa(\d+)","aa2343ddd").group() # 贪婪模式,匹配aa2343
re.match(r"aa(\d+?)","aa2343ddd").group() # 非贪婪模式,匹配aa2
re模块的其他用法
search(正则表达式, 要匹配的字符串)
- 浏览全部字符串,匹配第一符合规则的字符串,浏览整个字符串去匹配第一个,未匹配成功返回None。
- match()函数 与 search()函数基本是一样的功能,不一样的就是match()匹配字符串开始位置的一个符合规则的字符串,search()是在字符串全局匹配第一个合规则的字符串。
findall(正则表达式, 要匹配的字符串)
- 浏览全部字符串,匹配所有合规则的字符串,匹配到的字符串放到一个列表中,未匹配成功返回空列表。
sub(正则表达式, 要替换的字符串, 要匹配的字符串)
- 替换匹配成功的指定位置字符串
匹配模式
可通过修改re.compile()第二个参数flag、re.match、re.search、re.findall的第三个参数flag和re.sub中的第四的参数来修改匹配模式。(用的不多一般默认即可,除非有特殊要求)
|修饰符| 描述 |
|--|--|
|re.I | 使匹配对大小写不敏感 |
|re.L|做本地化识别(locale-aware)匹配|
|re.M|多行匹配,影响 ^ 和 $|
|re.S|使 . 匹配包括换行在内的所有字符|
|re.U|根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.|
|re.X|该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解|
内容总结
以上是互联网集市为您收集整理的python正则表达式的介绍全部内容,希望文章能够帮你解决python正则表达式的介绍所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。