文章目录
- 含义:匹配除换行符 n 以外的任意单个字符。 示例: import re pattern = r”a.b” print(re.match(pattern, “acb”)) # 匹配成功,”a.b” 中间任意字符 print(re.match(pattern, “anb”)) # 不匹配,中间是换行符
- 含义:匹配字符串的开头。 示例: pattern = r”^Hello” print(re.match(pattern, “Hello world”)) # 匹配成功 print(re.match(pattern, “world Hello”)) # 不匹配
- 含义:匹配字符串的结尾。 示例: pattern = r”world$” print(re.search(pattern, “Hello world”)) # 匹配成功 print(re.search(pattern, “Hello world!”)) # 不匹配
- 含义:匹配前面的字符零次或多次。 示例: pattern = r”ab*” print(re.match(pattern, “a”)) # 匹配成功,b 出现零次 print(re.match(pattern, “abbb”)) # 匹配成功,b 出现多次
- 含义:匹配前面的字符一次或多次。 示例: pattern = r”ab+” print(re.match(pattern, “ab”)) # 匹配成功,b 出现一次 print(re.match(pattern, “a”)) # 不匹配,至少需要一个 b
- 含义:匹配前面的字符零次或一次。 示例: pattern = r”ab?” print(re.match(pattern, “a”)) # 匹配成功,b 出现零次 print(re.match(pattern, “ab”)) # 匹配成功,b 出现一次 print(re.match(pattern, “abb”)) # 不匹配,b 出现两次
- 含义: {n}:匹配前一个字符恰好 n 次。 {n,}:匹配至少 n 次。 {n,m}:匹配至少 n 次,至多 m 次。 示例: pattern = r”ab{2,4}” print(re.match(pattern, “abb”)) # 匹配成功,b 出现 2 次 print(re.match(pattern, “abbbb”)) # 不匹配,b 超过 4 次
- 含义:匹配方括号内的任意字符。 [a-z]:表示范围,匹配从 a 到 z 的任意字符。 [^…]:取反,匹配不在方括号内的任意字符。 示例: pattern = r”[aeiou]” print(re.match(pattern, “apple”)) # 匹配成功,匹配元音字母 ‘a’ pattern2 = r”[^aeiou]” print(re.match(pattern2, “hello”)) # 匹配 ‘h’,不是元音字母
- 含义:在字符类中,表示范围。 [a-z]:从 a 到 z。 [A-Z]:从 A 到 Z。 [-]:如果 – 出现在开头或结尾,匹配减号本身。 示例: pattern = r”[a-z0-9]” print(re.match(pattern, “5”)) # 匹配成功,数字在范围内 print(re.match(pattern, “g”)) # 匹配成功,字母在范围内
- 含义:表示逻辑 "或",匹配左边或右边的规则。 示例: pattern = r”cat|dog” print(re.match(pattern, “cat”)) # 匹配成功 print(re.match(pattern, “dog”)) # 匹配成功
- 含义:将多个字符作为一个整体进行匹配,并捕获组内容。 示例: pattern = r”(ab)+” print(re.match(pattern, “abab”)) # 匹配成功
- 含义:用于转义特殊字符,或表示特殊的匹配序列。 d:匹配数字 [0-9]。 s:匹配空白字符(如空格、制表符)。 w:匹配字母、数字和下划线 [a-zA-Z0-9_]。 D、S、W:与上述序列的反义。 示例: pattern = r”d+” print(re.match(pattern, “12345”)) # 匹配成功 print(re.match(pattern, “abc”)) # 不匹配
- b:匹配单词边界。 B:匹配非单词边界。 示例: pattern = r”bcatb” print(re.search(pattern, “a cat sat”)) # 匹配成功,完整的单词 ‘cat’ pattern2 = r”catB” print(re.search(pattern2, “concatenate”)) # 匹配成功,’cat’ 后非边界
- (?=…):正向肯定预查。 (?!…):正向否定预查。 (?<=…):后向肯定预查。 (?<!…):后向否定预查。 示例: pattern = r”(?<=$)d+” print(re.search(pattern, “价格是$100”)) # 匹配 ‘100’,不包括 ‘$’
- (?P<name>…):定义命名分组。 (?P=name):引用命名分组。 示例: pattern = r”(?P<number>d+)s+(?P=number)” print(re.match(pattern, “123 123”)) # 匹配两个相同的数字 以上内容全面涵盖了 Python 正则表达式中的常用特殊字符及其含义,并结合示例展示了每个符号的实际用法,适合用于博客或深入学习。
目录
- Python 正则表达式常用特殊字符及其含义
- 1. . (点号)
- 2. ^ (脱字符)
- 3. $ (美元符)
- 4. * (星号)
- 5. + (加号)
- 6. ? (问号)
- 7. {n}, {n,}, {n,m} (量词限定符)
- 8. […] (字符类)
- 9. – (连字符/减号)
- 10. | (管道符)
- 11. () (分组和捕获)
- 12. (反斜杠)
- 13. b 和 B (单词边界)
- 14. 零宽断言 (Lookaround)
- 15. 命名组和引用
- 总结
以下是 Python 正则表达式常用特殊字符及其含义 的全面整理,涵盖了常见和重要的正则符号,以及它们的示例,适合用来写博客或学习使用:
- 含义:匹配除换行符
n 以外的任意单个字符。
- 示例:
import re
pattern = r"a.b"
print(re.match(pattern, "acb")) # 匹配成功,"a.b" 中间任意字符
print(re.match(pattern, "anb")) # 不匹配,中间是换行符
n 以外的任意单个字符。import re pattern = r"a.b" print(re.match(pattern, "acb")) # 匹配成功,"a.b" 中间任意字符 print(re.match(pattern, "anb")) # 不匹配,中间是换行符
- 含义:匹配字符串的开头。
- 示例:
pattern = r"^Hello"
print(re.match(pattern, "Hello world")) # 匹配成功
print(re.match(pattern, "world Hello")) # 不匹配
pattern = r"^Hello" print(re.match(pattern, "Hello world")) # 匹配成功 print(re.match(pattern, "world Hello")) # 不匹配
- 含义:匹配字符串的结尾。
- 示例:
pattern = r"world$"
print(re.search(pattern, "Hello world")) # 匹配成功
print(re.search(pattern, "Hello world!")) # 不匹配
pattern = r"world$" print(re.search(pattern, "Hello world")) # 匹配成功 print(re.search(pattern, "Hello world!")) # 不匹配
- 含义:匹配前面的字符零次或多次。
- 示例:
pattern = r"ab*"
print(re.match(pattern, "a")) # 匹配成功,b 出现零次
print(re.match(pattern, "abbb")) # 匹配成功,b 出现多次
pattern = r"ab*" print(re.match(pattern, "a")) # 匹配成功,b 出现零次 print(re.match(pattern, "abbb")) # 匹配成功,b 出现多次
- 含义:匹配前面的字符一次或多次。
- 示例:
pattern = r"ab+"
print(re.match(pattern, "ab")) # 匹配成功,b 出现一次
print(re.match(pattern, "a")) # 不匹配,至少需要一个 b
pattern = r"ab+" print(re.match(pattern, "ab")) # 匹配成功,b 出现一次 print(re.match(pattern, "a")) # 不匹配,至少需要一个 b
- 含义:匹配前面的字符零次或一次。
- 示例:
pattern = r"ab?"
print(re.match(pattern, "a")) # 匹配成功,b 出现零次
print(re.match(pattern, "ab")) # 匹配成功,b 出现一次
print(re.match(pattern, "abb")) # 不匹配,b 出现两次
pattern = r"ab?" print(re.match(pattern, "a")) # 匹配成功,b 出现零次 print(re.match(pattern, "ab")) # 匹配成功,b 出现一次 print(re.match(pattern, "abb")) # 不匹配,b 出现两次
- 含义:
{n}:匹配前一个字符恰好 n 次。
{n,}:匹配至少 n 次。
{n,m}:匹配至少 n 次,至多 m 次。
- 示例:
pattern = r"ab{2,4}"
print(re.match(pattern, "abb")) # 匹配成功,b 出现 2 次
print(re.match(pattern, "abbbb")) # 不匹配,b 超过 4 次
{n}:匹配前一个字符恰好 n 次。{n,}:匹配至少 n 次。{n,m}:匹配至少 n 次,至多 m 次。
pattern = r"ab{2,4}"
print(re.match(pattern, "abb")) # 匹配成功,b 出现 2 次
print(re.match(pattern, "abbbb")) # 不匹配,b 超过 4 次
- 含义:匹配方括号内的任意字符。
[a-z]:表示范围,匹配从 a 到 z 的任意字符。
[^...]:取反,匹配不在方括号内的任意字符。
- 示例:
pattern = r"[aeiou]"
print(re.match(pattern, "apple")) # 匹配成功,匹配元音字母 'a'
pattern2 = r"[^aeiou]"
print(re.match(pattern2, "hello")) # 匹配 'h',不是元音字母
[a-z]:表示范围,匹配从a到z的任意字符。[^...]:取反,匹配不在方括号内的任意字符。
pattern = r"[aeiou]" print(re.match(pattern, "apple")) # 匹配成功,匹配元音字母 'a' pattern2 = r"[^aeiou]" print(re.match(pattern2, "hello")) # 匹配 'h',不是元音字母
- 含义:在字符类中,表示范围。
[a-z]:从 a 到 z。
[A-Z]:从 A 到 Z。
[-]:如果 - 出现在开头或结尾,匹配减号本身。
- 示例:
pattern = r"[a-z0-9]"
print(re.match(pattern, "5")) # 匹配成功,数字在范围内
print(re.match(pattern, "g")) # 匹配成功,字母在范围内
[a-z]:从a到z。[A-Z]:从A到Z。[-]:如果-出现在开头或结尾,匹配减号本身。
pattern = r"[a-z0-9]" print(re.match(pattern, "5")) # 匹配成功,数字在范围内 print(re.match(pattern, "g")) # 匹配成功,字母在范围内
- 含义:表示逻辑 "或",匹配左边或右边的规则。
- 示例:
pattern = r"cat|dog"
print(re.match(pattern, "cat")) # 匹配成功
print(re.match(pattern, "dog")) # 匹配成功
pattern = r"cat|dog" print(re.match(pattern, "cat")) # 匹配成功 print(re.match(pattern, "dog")) # 匹配成功
- 含义:将多个字符作为一个整体进行匹配,并捕获组内容。
- 示例:
pattern = r"(ab)+"
print(re.match(pattern, "abab")) # 匹配成功
pattern = r"(ab)+" print(re.match(pattern, "abab")) # 匹配成功
- 含义:用于转义特殊字符,或表示特殊的匹配序列。
d:匹配数字 [0-9]。
s:匹配空白字符(如空格、制表符)。
w:匹配字母、数字和下划线 [a-zA-Z0-9_]。
D、S、W:与上述序列的反义。
- 示例:
pattern = r"d+"
print(re.match(pattern, "12345")) # 匹配成功
print(re.match(pattern, "abc")) # 不匹配
d:匹配数字[0-9]。s:匹配空白字符(如空格、制表符)。w:匹配字母、数字和下划线[a-zA-Z0-9_]。D、S、W:与上述序列的反义。
pattern = r"d+" print(re.match(pattern, "12345")) # 匹配成功 print(re.match(pattern, "abc")) # 不匹配
b:匹配单词边界。
B:匹配非单词边界。
- 示例:
pattern = r"bcatb"
print(re.search(pattern, "a cat sat")) # 匹配成功,完整的单词 'cat'
pattern2 = r"catB"
print(re.search(pattern2, "concatenate")) # 匹配成功,'cat' 后非边界
b:匹配单词边界。B:匹配非单词边界。pattern = r"bcatb" print(re.search(pattern, "a cat sat")) # 匹配成功,完整的单词 'cat' pattern2 = r"catB" print(re.search(pattern2, "concatenate")) # 匹配成功,'cat' 后非边界
(?=...):正向肯定预查。
(?!...):正向否定预查。
(?<=...):后向肯定预查。
(?<!...):后向否定预查。
- 示例:
pattern = r"(?<=$)d+"
print(re.search(pattern, "价格是$100")) # 匹配 '100',不包括 '$'
(?=...):正向肯定预查。(?!...):正向否定预查。(?<=...):后向肯定预查。(?<!...):后向否定预查。pattern = r"(?<=$)d+" print(re.search(pattern, "价格是$100")) # 匹配 '100',不包括 '$'
(?P<name>...):定义命名分组。
(?P=name):引用命名分组。
- 示例:
pattern = r"(?P<number>d+)s+(?P=number)"
print(re.match(pattern, "123 123")) # 匹配两个相同的数字
(?P<name>...):定义命名分组。(?P=name):引用命名分组。pattern = r"(?P<number>d+)s+(?P=number)" print(re.match(pattern, "123 123")) # 匹配两个相同的数字
以上内容全面涵盖了 Python 正则表达式中的常用特殊字符及其含义,并结合示例展示了每个符号的实际用法,适合用于博客或深入学习。
到此这篇关于Python正则表达式常用特殊字符及其含义示例详解的文章就介绍到这了,更多相关Python正则特殊字符及含义内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- python正则表达式去除两个特殊字符间的内容方法
- Python正则表达式如何匹配特殊字符串