美文网首页
正则表达式-字符类

正则表达式-字符类

作者: 部落大圣 | 来源:发表于2018-10-05 23:35 被阅读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]"用于排除了大写字符串。注意,^应该位于括号内,表示非此字符类。

    相关文章

      网友评论

          本文标题:正则表达式-字符类

          本文链接:https://www.haomeiwen.com/subject/hipfaftx.html