正则表达式的用法
编辑:梨涡 分类:python 日期:2024-06-07 20:09:04 访问量:124

基本符号

  1. . (点)

    • 匹配任意一个字符(除了换行符)。
  2. ^ (脱字符)

    • 匹配字符串的开始。
  3. $ (美元符号)

    • 匹配字符串的结束。
  4. * (星号)

    • 匹配前面的字符零次或多次。
  5. + (加号)

    • 匹配前面的字符一次或多次。
  6. ? (问号)

    • 匹配前面的字符零次或一次。
  7. [] (方括号)

    • 匹配方括号内的任意一个字符。例如,[abc] 匹配 abc
  8. | (竖线)

    • 逻辑或。例如,a|b 匹配 ab
  9. () (圆括号)

    • 组。例如,(abc)abc 作为一个整体进行匹配。

元字符

  1. \d

    • 匹配一个数字字符,等价于 [0-9]
  2. \D

    • 匹配一个非数字字符,等价于 [^0-9]
  3. \w

    • 匹配一个字母、数字或下划线字符,等价于 [a-zA-Z0-9_]
  4. \W

    • 匹配一个非字母、数字或下划线字符,等价于 [^a-zA-Z0-9_]
  5. \s

    • 匹配一个空白字符,包括空格、制表符、换页符等。
  6. \S

    • 匹配一个非空白字符。

量词

  1. {n}

    • 精确匹配前面的字符 n 次。例如,a{3} 匹配 aaa
  2. {n,}

    • 匹配前面的字符至少 n 次。例如,a{2,} 匹配 aaaaa 等。
  3. {n,m}

    • 匹配前面的字符至少 n 次,至多 m 次。例如,a{2,3} 匹配 aaaaa

 

 

示例解析(一个检查邮箱地址的python方法)

def check(email):
    '''
    检查是否为邮件地址
    :param email:
    :return:
    '''
    regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
    if re.search(regex, email):
        return True
    else:
        return False

 

其中的:

^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$

我们逐部分解释它:

  1. ^

    • 匹配字符串的开始。
  2. [a-z0-9]+

    • 匹配一个或多个小写字母或数字。
  3. [\._]?

    • 匹配一个点 . 或下划线 _,这部分是可选的(零次或一次)。
  4. [a-z0-9]+

    • 再次匹配一个或多个小写字母或数字。
  5. [@]

    • 匹配 @ 符号。
  6. \w+

    • 匹配一个或多个字母、数字或下划线字符。
  7. [.]

    • 匹配一个点 .
  8. \w{2,3}

    • 匹配 2 到 3 个字母、数字或下划线字符。
  9. $

    • 匹配字符串的结束。

这个正则表达式整体上匹配的是一个典型的电子邮件地址格式。它确保电子邮件地址以一个或多个小写字母或数字开头,后面可以有一个点或下划线,再接一个或多个小写字母或数字,接着是 @ 符号,域名部分由一个或多个字母或数字字符组成,最后是一个点和 2 到 3 个字母或数字字符的顶级域名。

 

返回顶部