正则表达式-字符类

2018-10-05  本文已影响12人  部落大圣

字符类提供了一种只匹配特定字符集的一个字符的方法。字符类通过方括号把一列字符或一个范围括在一起。

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]"用于排除了大写字符串。注意,^应该位于括号内,表示非此字符类。

上一篇下一篇

猜你喜欢

热点阅读