加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python_正则表达式

发布时间:2020-12-20 12:58:10 所属栏目:Python 来源:网络整理
导读:正则表达式 需要导入模块 import re 小写w 匹配字母(包含中文)或数字或下划线 #例子如下import reprint(re.findall('w','SkyRabbit()66'))#输出结果['S','k','y','R','a','b','i','t','6','6'] 大写w 匹配非字母(包含中文)或数字或下划线 #例子如下im

正则表达式

需要导入模块
import re

小写w
匹配字母(包含中文)或数字或下划线

#例子如下
import re
print(re.findall('w','SkyRabbit()66'))
#输出结果
['S','k','y','R','a','b','i','t','6','6']

大写w
匹配非字母(包含中文)或数字或下划线

#例子如下
import re
print(re.findall('W','SkyRabbit()66'))
#输出结果
['(',')']

小写s
匹配任意的空白符

#例子如下
import re
print(re.findall('s','SkyRabbit() n66'))
#输出结果
[' ','n']

大写S
匹配任意非空白符

#例子如下
import re
print(re.findall('S','SkyRabbit() n66'))
#输出结果
['S','(',')','6']

小写d
匹配数字

#例子如下
import re
print(re.findall('d','SkyRabbit() n66'))
#输出结果
['6','6']

大写d
p匹配非数字

#例子如下
import re
print(re.findall('D',' ','n']

大写A
从字符串开头匹配

#例子如下
import re
print(re.findall('ASky','SkyRabbit() n66'))
#输出结果
['Sky']

^
匹配字符串的开始

#例子如下
import re
print(re.findall('^Sky','SkyRabbit() n66'))
#输出结果
['Sky']

大写Z
匹配字符串的结束,如果是换行,只匹配到换行前的结果

#例子如下
import re
print(re.findall('666Z','SkyRabbit n666'))
#输出结果
['666']

小写z与$ 索引字符串以外的

. ? * + {m,n} .* .*?
重复匹配

#例子如下
import re

# . 匹配任意字符,除了换行符(re.DOTALL 这个参数可以匹配n)。
# print(re.findall('a.b','ab aab a*b a2b a牛b anb'))  # ['aab','a*b','a2b','a牛b']
# print(re.findall('a.b','ab aab a*b a2b a牛b anb',re.DOTALL))  # ['aab','a牛b']


# ?匹配0个或者1个由左边字符定义的片段。
# print(re.findall('a?b','ab aab abb aaaab a牛b aba**b'))  # ['ab','ab','b']


# * 匹配0个或者多个左边字符表达式。 满足贪婪匹配 @@
# print(re.findall('a*b','ab aab aaab abbb'))  # ['ab','aab','aaab','b']
# print(re.findall('ab*','ab aab aaab abbbbb'))  # ['ab','abbbbb']


# + 匹配1个或者多个左边字符表达式。 满足贪婪匹配  @@
# print(re.findall('a+b','ab']


# {m,n}  匹配m个至n个左边字符表达式。 满足贪婪匹配  @@
# print(re.findall('a{2,4}b','ab aab aaab aaaaabb'))  # ['aab','aaab']


# .* 贪婪匹配 从头到尾.
# print(re.findall('a.*b','ab aab a*()b'))  # ['ab aab a*()b']


# .*? 此时的?不是对左边的字符进行0次或者1次的匹配,# 而只是针对.*这种贪婪匹配的模式进行一种限定:告知他要遵从非贪婪匹配 推荐使用!
# print(re.findall('a.*?b','ab a1b a*()b,aaaaaab'))  # ['ab','a1b','a*()b']


# []: 括号中可以放任意一个字符,一个中括号代表一个字符
# - 在[]中表示范围,如果想要匹配上- 那么这个-符号不能放在中间.
# ^ 在[]中表示取反的意思.
# print(re.findall('a.b','a1b a3b aeb a*b arb a_b'))  # ['a1b','a3b','a4b','arb','a_b']
# print(re.findall('a[abc]b','aab abb acb adb afb a_b'))  # ['aab','abb','acb']
# print(re.findall('a[0-9]b','a3b']
# print(re.findall('a[a-z]b','a1b a3b aeb a*b arb a_b'))  # ['aeb','arb']
# print(re.findall('a[a-zA-Z]b','aAb aWb aeb a*b arb a_b'))  # ['aAb','aWb','aeb','arb']
# print(re.findall('a[0-9][0-9]b','a11b a12b a34b a*b arb a_b'))  # ['a11b','a12b','a34b']
# print(re.findall('a[*-+]b','a-b a*b a+b a/b a6b'))  # ['a*b','a+b']
# - 在[]中表示范围,如果想要匹配上- 那么这个-符号不能放在中间.
# print(re.findall('a[-*+]b','a-b a*b a+b a/b a6b'))  # ['a-b','a+b']
# print(re.findall('a[^a-z]b','acb adb a3b a*b'))  # ['a3b','a*b']

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读