字符类提供了一种只匹配特定字符集的一个字符的方法。字符类通过方括号把一列字符或一个范围括在一起。
import re
pattern = r"[aeiou]"
if re.search(pattern, "grey"):
print("Match 1")
if re.search(pattern, "qwesdasuiop"):
print("Match 2")
if re.search(pattern, "sasdasdio"):
print("Match 3")
if re.search(pattern, "sdsdw"):
print("Match 4")
.............................................
Match 1
Match 2
Match 3
匹配模式[aeiou]在search函数中匹配字符串包含的其中任何一个字符。
字符类可以匹配字符范围。
[a-z]匹配任何小写字母。
[A-Z]匹配任何大写字母。
[F-Z]匹配大写字母F到Z。
[0-9]匹配数字。
可以在一个类中包含多个范围。例如[A-Za-z]匹配任何情况下的一个字母。
import re
pattern = r"[A-Z][A-Z][0-9]"
if re.search(pattern, "LS8"):
print("Match 1")
if re.search(pattern, "E3"):
print("Match 2")
if re.search(pattern, "1ds"):
print("Mathc 3")
..........................................................
Match 1
r"[A-Z][A-Z][0-9]"这个字符类给出了三个匹配范围。起初以为为何会有两个[A-z],运行结果比对匹配的string这是要对三个字符进行匹配,前两个为字母最后为数字,且都满足返回结果,顺序还不能乱,可以用来检索某些字符的出现频率。
字符类排除法
在字符类的开头有^表示匹配非字符类,也就是它与被包含的字符之外的任何字符匹配。
有些元字符(如$和.)在字符类中没有任何意义,元字符^同样没有任何意义,除非它是字符类中的第一个字符。
import re
pattern = r"[^A-Z]"
if re.search(pattern, "this is all quiet"):
print("Match 1")
if re.search(pattern, "AbCdEfG123"):
print("Match 2")
if re.search(pattern, "THISISALLSHOUTING"):
print("Match 3")
...............................................................
Match 1
Match 2
匹配模式"[^ A-Z]"用于排除了大写字符串。注意,^应该位于括号内,表示非此字符类。
网友评论