import re(正则表达式)


例题:URL

1 import re
2 def url(string: str) -> list :
3 # 含括号匹配时不作处理仅返回括号内容
4 # 在括号前假设?:后返回所有元素
5 result = re.findall(r'(?:https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]', string)
6 return result
7 st = input()
8 print(url(st))

 

 


 

r:带'r' 前缀的字符串,反斜杠无效。 如 r"\n" 表示包含 '\' 和 'n' 两个字符的字符串,而 "\n" 则表示只包含一个换行符的字符串

 Python 正则表达式 | 菜鸟教程 (runoob.com)

(2条消息) python——正则表达式(re模块)详解_guo_qingxia的博客-CSDN博客_python re

re.findall函数


在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

1 举例:
2 
3 import re
4 ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345")
5 print(ret)
6 结果:
7 
8 ['9999', '7890', '12345']

 

 

匹配单个字符


字符 功能 位置
. 匹配任意1个字符(除了\n)
[ ] 匹配[ ]中列举的字符
\d 匹配数字,即0-9 可以写在字符集[...]中
\D 匹配⾮数字,即不是数字 可以写在字符集[...]中
\s 匹配空⽩,即空格,tab键 可以写在字符集[...]中
\S 匹配⾮空⽩字符 可以写在字符集[...]中
\w 匹配单词字符,即a-z、A-Z、0-9、_ 可以写在字符集[...]中
\W 匹配⾮单词字符 可以写在字符集[...]中
\w \w 匹配单词字符,即a-z、A-Z、0-9、_
\W 匹配⾮单词字符
————————————————

 

匹配多个字符


字符 功能 位置 表达式实例 完整匹配的字符串
* 匹配前⼀个字符出现0次或者⽆限次,即可有可⽆ 用在字符或(...)之后 abc* abccc
+ 匹配前⼀个字符出现1次或者⽆限次,即⾄少有1次 用在字符或(...)之后 abc+ abccc
? 匹配前⼀个字符出现1次或者0次,即要么有1次,要么没有 用在字符或(...)之后 abc? ab,abc
{m} 匹配前⼀个字符出现m次 用在字符或(...)之后 ab{2}c abbc
{m,n} 匹配前⼀个字符出现从m到n次,若省略m,则匹配0到n次,若省略n,则匹配m到无限次 用在字符或(...)之后 ab{1,2}c abc,abbc

 

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

    1. re.I 忽略大小写
    2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
    3. re.M 多行模式
    4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
    5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
    6. re.X 为了增加可读性,忽略空格和 # 后面的注释

匹配开头结尾

字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM