YorkWaugh 发表于 2023-12-1 12:02

Python re库 转义字符使用

re库中pattern中使用\b等元字符似乎需要转义,而raw string中似乎又不相同,如下图,"-"是否需要转义?哪些情况需要转义?使用"\"还是"\\"?这些转义的具体规则能否详细总结以下?谢谢!

d8349565 发表于 2023-12-1 13:10

1. `\`: 反斜杠用于转义特殊字符,例如 `\.` 匹配点字符,而不是匹配任意字符。
2. `.`: 当需要匹配点字符本身时,需要使用 `\.` 进行转义。
3. `^`: 当需要匹配开始位置时,需要使用 `\^` 进行转义。
4. `$`: 当需要匹配结束位置时,需要使用 `\$` 进行转义。
5. `*`: 当需要匹配零次或多次前面的字符时,需要使用 `\*` 进行转义。
6. `+`: 当需要匹配一次或多次前面的字符时,需要使用 `\+` 进行转义。
7. `?`: 当需要匹配零次或一次前面的字符时,需要使用 `\?` 进行转义。
8. `[]`: 当需要匹配括号内的任意字符时,可以使用 `\[ \]` 进行转义。
9. `|`: 当需要匹配多个模式中的一个时,需要使用 `\|` 进行转义。
10. `(` 和 `)`: 当需要匹配括号本身时,需要使用 `\( \)` 进行转义。
11. `{}`: 当需要指定前面的字符出现的次数时,例如 `{3}` 表示匹配前面的字符出现 3 次,需要使用 `\{ \}` 进行转义。

greatzdl 发表于 2023-12-1 13:40

前边加个r是不是就不用考虑那么多了 比如 “C://dd//test.txt” r"C:/dd/test.txt"

wapjsx 发表于 2023-12-1 14:09

greatzdl 发表于 2023-12-1 13:40
前边加个r是不是就不用考虑那么多了 比如 “C://dd//test.txt” r"C:/dd/test.txt"

可以这么理解,但也是具体情况具体分析的。

YorkWaugh 发表于 2023-12-1 15:36

greatzdl 发表于 2023-12-1 13:40
前边加个r是不是就不用考虑那么多了 比如 “C://dd//test.txt” r"C:/dd/test.txt"

呃比如我图中的实践,为什么是\\d

无闻无问 发表于 2023-12-1 17:28

YorkWaugh 发表于 2023-12-1 15:36
呃比如我图中的实践,为什么是\\d

一个\代表是正则转义,另一个\代表是Python转义,故是\\d

greatzdl 发表于 2023-12-1 17:31

本帖最后由 greatzdl 于 2023-12-1 17:33 编辑

YorkWaugh 发表于 2023-12-1 15:36
呃比如我图中的实践,为什么是\\d


加个r表示元字符,就不用那么多事情了。
最重要的元字符是反斜杠, \ 。 与Python 字符串字面量一样,反斜杠后面可以跟各种字符来表示各种特殊序列。它还用于转义元字符,以便可以在表达式中匹配元字符本身。

Superwill8216 发表于 2023-12-1 17:51

記得之前想用這個抓取電子郵件可是一直失敗。

FruitBaby 发表于 2023-12-3 09:18

d8349565 发表于 2023-12-1 13:10
1. `\`: 反斜杠用于转义特殊字符,例如 `\.` 匹配点字符,而不是匹配任意字符。
2. `.`: 当需要匹配点 ...

很全面,谢谢大佬分享
页: [1]
查看完整版本: Python re库 转义字符使用