1. 正则表达式(单个字符匹配)

day21-Python运维开发基础(单个字符匹配 / 多字符匹配)

 

 

# ### 正则表达式  => 单个字符匹配
import re
"""
lst = re.findall(正则表达式,字符串)
"""
 
# (1) 预定义字符集

# \d 匹配数字
strvar = "sadfasdf^*&^&*^&*^&*你好 神秘男孩  2400909()()"
lst = re.findall("\d",strvar)
print(lst)

# \D 匹配非数字
strvar = "&&*sdfjklasjdkf_sdf',神秘女孩23423岁4234234"
lst = re.findall("\D",strvar)
print(lst)

# \w 匹配字母或数字或下划线     (正则函数中,支持中文的匹配)
strvar = "uiui7887_王文&*&*"
lst = re.findall("\w",strvar)
print(lst)

# \W 匹配非字母或数字或下划线
strvar = "uiui7887_王文&*&*"
lst = re.findall("\W",strvar)
print(lst)

# \s 匹配任意的空白符 \n \t \r " "
strvar = "    周杰伦    "
lst = re.findall("\s",strvar)
print(lst)

# \S 匹配任意非空白符
strvar = " sdf234       "
lst = re.findall("\S",strvar)
print(lst)

# \n 匹配一个换行符 [最好在正则表达式的前面加上r,让转义字符失效,原型化匹配]
strvar = """
王文你真帅呀,我受不了        
"""
lst = re.findall(r"\n",strvar)
print(lst)

# \t 匹配一个制表符
lst = re.findall(r"\t",strvar)
print(lst)


# (2) 字符组 从小组中默认选一个
lst = re.findall("[123]","451627")
print(lst)

print(re.findall('a[abc]b','aab abb acb adb')) #  aab abb acb
print(re.findall('a[0123456789]b','a1b a2b a3b acb ayb')) # a1b a2b a3b

# 优化写法 0123456789  => 0-9 0到9  -是特殊字符 , 居右特殊含义
print(re.findall('a[0-9]b','a1b a2b a3b acb ayb')) # a1b a2b a3b

print(re.findall('a[abcdefg]b','a1b a2b a3b acb ayb adb')) # acb adb

# 优化写法 abcdefg a-g  26个小写字母 a-z
print(re.findall('a[a-z]b','a1b a2b a3b acb ayb adb')) # acb adb ayb


print(re.findall('a[ABCDEFG]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb

# 优化写法 ABCDEFG  A-G 26个大写字母A-Z
print(re.findall('a[A-Z]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb aYb

# 匹配所有的字母+数字
print(re.findall('a[0-9a-zA-Z]b','a-b aab aAb aWb aqba1b'))  # aab aAb aWb  aqb a1b

# 优化写法 0-9a-zA-Z  0-z 范围变大 一些特殊符号也被包含进行了 , 不推荐使用
print(re.findall('a[0-z]b','a-b aab aAb aWb aqba@b')) # ['aab', 'aAb', 'aWb', 'aqb', 'a@b']

print(re.findall('a[0-9][*#/]b','a1/b a2b a29b a56b a456b')) # a1/b

# ^ 出现在字符组中,代表除了 ,除了+-*/ 这个符号 都要
print(re.findall('a[^-+*/]b',"a%b ccaa*bda&bd")) # ['a%b', 'a&b']

# 匹配特殊符号 利用\ 让原来有意义的字符失效, 通过转义来实现匹配
lst = re.findall(r"a[\^\-]b","a^b a-b")
print(lst)

# 匹配\
lst = re.findall(r"a\\b",r"a\b")
print(lst)    # 显示\\
print(lst[0]) # 打印出来是一个\
正则表达式_单个字符匹配 示例代码

相关文章:

  • 2021-12-08
  • 2022-12-23
  • 2022-12-23
  • 2022-01-21
  • 2021-11-11
  • 2022-12-23
  • 2021-11-15
猜你喜欢
  • 2021-12-18
  • 2022-02-10
  • 2022-12-23
  • 2021-05-29
  • 2021-12-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案