python之正则表达式(字符)

    技术2022-07-11  97

    什么是正则表达式

    正则表达式(regular expression)是包含文本和特殊字符的字符串,该字符串描述一个可以识别各种字符串的模式

    为什么要使用正则表达式

    1.信息隐藏 2.信息过滤 3.信息采集器 4.信息查询

    那么下面我就来介绍下正则表达式的字符匹配:

    .

    匹配所有字符

    print(re.findall('.', "I love China,2000-07-01")) # ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'C', 'h', 'i', 'n', 'a', ',', '2', '0', '0', '0', '-', '0', '7', '-', '0', '1']

    2.[ ]

    匹配[ ] 里面的内容,例如[a-z]匹配所有小写字母,同理[a-zA-Z]匹配所有字母

    print(re.findall("[a-zA-Z0-9]", "I love China,2000-07-01")) # ['I', 'l', 'o', 'v', 'e', 'C', 'h', 'i', 'n', 'a', '2', '0', '0', '0', '0', '7', '0', '1']))

    3.\d

    匹配数字

    print(re.findall('\d', "I love China,2000-07-01")) # ['2', '0', '0', '0', '0', '7', '0', '1']

    4.\D

    匹配非数字

    print(re.findall('\D', "I love China,2000-07-01")) # ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'C', 'h', 'i', 'n', 'a', ',', '-', '-']

    5.\s

    匹配空格

    print(re.findall('\s', "I love China,2000-07-01")) # [' ', ' ']

    6.\S

    匹配非空格

    print(re.findall('\S', "I love China,2000-07-01")) # ['I', 'l', 'o', 'v', 'e', 'C', 'h', 'i', 'n', 'a', ',', '2', '0', '0', '0', '-', '0', '7', '-', '0', '1']

    7.\w

    匹配单词字符即a-zA-Z0-9

    print(re.findall('\w', "I love China,2000-07-01")) # ['I', 'l', 'o', 'v', 'e', 'C', 'h', 'i', 'n', 'a', '2', '0', '0', '0', '0', '7', '0', '1']

    8.\W

    匹配非单词字符

    print(re.findall('\W', "I love China,2000-07-01")) # 非单词字符 # [' ', ' ', ',', '-', '-']

    9.*

    “ * ”匹配前一个字符出现0次或者无限次,即可有可无

    print(re.findall(r"ab*", "a aB abC abBc")) # ['a', 'a', 'ab', 'ab']

    10.+

    " + " 匹配前一个字符出现1次或者无限次,即至少有1次

    print(re.findall(r"ab+", "a aB abC abBc")) # ['ab', 'ab']

    11.?

    “ ?” 匹配前一个字符出现1次或者0次,即要么有1次,要么没有

    print(re.findall(r"ab?", "a aB abC abBc")) # ['a', 'a', 'ab', 'ab']

    12.^

    " ^ "匹配字符串开头

    print(re.findall('^a', "asdfgh- -123")) # ['a']

    13.$

    " $ " 匹配字符串结尾

    print(re.findall('3$', "asdfgh- -123")) # ['3']
    Processed: 0.011, SQL: 9