008、【byhy】 常见语法—— 对元字符的转义( \ )

 

 

一、 常见语法——  对元字符的转义( \ )

反斜杠 \ 在正则表达式中有多种用途。

比如,我们要在下面的文本中搜索 所有点前面的字符串,也包含点本身

苹果.是绿色的
橙子.是橙色的
香蕉.是黄色的

如果,我们这样写正则表达式 .*. , 聪明的你肯定发现不对劲。

因为 点 是一个 元字符, 直接出现在正则表达式中,表示匹配任意的单个字符, 不能表示 . 这个字符本身的意思了。

怎么办呢?

如果我们要搜索的内容本身就包含元字符,就可以使用 反斜杠进行转义。

这里我们就应用使用这样的表达式: .*\.

示例,Python程序如下

import re

content = '''
苹果.是绿色的
橙子.是橙色的
香蕉.是黄色的
'''

p = re.compile(r'.*\.')
for one in p.findall(content):
    print(one)

执行结果如下:

苹果.
橙子.
香蕉.

Process finished with exit code 0

 

匹配某种字符类型

反斜杠后面接一些字符,表示匹配 某种类型 的一个字符。

比如:

\d 匹配0-9之间任意一个数字字符,等价于表达式 [0-9]

\D 匹配任意一个不是0-9之间的数字字符,等价于表达式 [^0-9]

\s 匹配任意一个空白字符,包括 空格、tab、换行符等,等价于表达式 [\t\n\r\f\v]

\S 匹配任意一个非空白字符,等价于表达式 [^ \t\n\r\f\v]

\w 匹配任意一个文字字符,包括大小写字母、数字、下划线,等价于表达式 [a-zA-Z0-9_]

缺省情况也包括 Unicode文字字符,如果指定 ASCII 码标记,则只包括ASCII字母

\W 匹配任意一个非文字字符,等价于表达式 [^a-zA-Z0-9_]

 

反斜杠也可以用在方括号里面,比如 [\s,.] 表示匹配 : 任何空白字符, 或者逗号,或者点;

 

1、\d 匹配0-9之间任意一个数字字符,等价于表达式 [0-9]

 

2、\D 匹配任意一个不是0-9之间的数字字符,等价于表达式 [^0-9]

 

3、\s 匹配任意一个空白字符,包括 空格、tab、换行符等,等价于表达式 [\t\n\r\f\v]

 

4、\S 匹配任意一个非空白字符,等价于表达式 [^ \t\n\r\f\v]

 

5、\w 匹配任意一个文字字符,包括大小写字母、数字、下划线,等价于表达式 [a-zA-Z0-9_]

  缺省情况也包括 Unicode文字字符,如果指定 ASCII 码标记,则只包括ASCII字母

 

6、\W 匹配任意一个非文字字符,等价于表达式 [^a-zA-Z0-9_]

 

7、反斜杠也可以用在方括号里面,比如 [\s,.] 表示匹配 : 任何空白字符, 或者逗号,或者点;

 

 

posted @ 2021-09-08 10:20  空-山-新-雨  阅读(2383)  评论(0编辑  收藏  举报