建筑外观设计网站财务公司经营范围有哪些
正则表达式中的特殊字符
- 字符类
- 预定义字符类
- 量词
- 锚点
- 分组和捕获
- 选择、分支和条件
- 反义和否定
- 转义字符
- 示例
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱
在正则表达式中,有许多特殊字符用于定义匹配模式。以下是常用的正则表达式特殊字符及其解释。
字符类
[]:定义字符类,用于匹配方括号内的任意一个字符。- 示例:
[abc]匹配a、b或c。
- 示例:
-:在字符类中表示范围。- 示例:
[a-z]匹配任何小写字母。
- 示例:
预定义字符类
.:匹配除换行符外的任意一个字符。\d:匹配任意一个数字,等价于[0-9]。\D:匹配任意一个非数字字符,等价于[^0-9]。\w:匹配任意一个单词字符(字母、数字或下划线),等价于[a-zA-Z0-9_]。\W:匹配任意一个非单词字符,等价于[^a-zA-Z0-9_]。\s:匹配任意一个空白字符(空格、制表符、换行符等)。\S:匹配任意一个非空白字符。
量词
*:匹配前面的字符零次或多次。- 示例:
a*匹配""、a、aa、aaa等。
- 示例:
+:匹配前面的字符一次或多次。- 示例:
a+匹配a、aa、aaa等。
- 示例:
?:匹配前面的字符零次或一次。- 示例:
a?匹配""或a。
- 示例:
{n}:匹配前面的字符恰好n次。- 示例:
a{3}匹配aaa。
- 示例:
{n,}:匹配前面的字符至少n次。- 示例:
a{2,}匹配aa、aaa、aaaa等。
- 示例:
{n,m}:匹配前面的字符至少n次且至多m次。- 示例:
a{2,4}匹配aa、aaa或aaaa。
- 示例:
锚点
^:匹配字符串的开始。- 示例:
^abc匹配以abc开头的字符串。
- 示例:
$:匹配字符串的结束。- 示例:
abc$匹配以abc结尾的字符串。
- 示例:
\b:匹配单词边界。- 示例:
\bword\b匹配word,但不匹配sword或words。
- 示例:
\B:匹配非单词边界。- 示例:
\Bword\B匹配swordsmith中的word。
- 示例:
分组和捕获
():定义分组,并捕获匹配的子字符串。- 示例:
(abc)匹配并捕获abc。
- 示例:
(?:):定义分组,但不捕获匹配的子字符串。- 示例:
(?:abc)匹配但不捕获abc。
- 示例:
选择、分支和条件
|:表示选择或分支。- 示例:
a|b匹配a或b。
- 示例:
(?=...):正向前瞻断言,匹配...前的位置。- 示例:
a(?=b)匹配a,但仅当a后面跟着b。
- 示例:
(?!...):负向前瞻断言,匹配不为...前的位置。- 示例:
a(?!b)匹配a,但仅当a后面不跟着b。
- 示例:
反义和否定
^:在字符类中表示反义。- 示例:
[^abc]匹配除a、b、c之外的任意字符。
- 示例:
(?<=...):正向后瞻断言,匹配...后的位置。- 示例:
(?<=a)b匹配b,但仅当b前面是a。
- 示例:
(?<!...):负向后瞻断言,匹配不为...后的位置。- 示例:
(?<!a)b匹配b,但仅当b前面不是a。
- 示例:
转义字符
\:用于转义特殊字符,使其作为普通字符处理。- 示例:
\.匹配.字符,而不是任意字符。
- 示例:
示例
以下是一些示例来展示如何使用上述特殊字符:
import re# 匹配任意单个字符
pattern = re.compile(r'.')
print(pattern.match('a').group()) # 输出: a# 匹配任意数字
pattern = re.compile(r'\d')
print(pattern.match('5').group()) # 输出: 5# 匹配单词边界上的单词
pattern = re.compile(r'\bword\b')
print(pattern.search('A word in a sentence').group()) # 输出: word# 匹配以 abc 开头的字符串
pattern = re.compile(r'^abc')
print(pattern.match('abcde').group()) # 输出: abc# 匹配以 xyz 结尾的字符串
pattern = re.compile(r'xyz$')
print(pattern.search('123xyz').group()) # 输出: xyz# 匹配包含 "hello" 或 "world" 的字符串
pattern = re.compile(r'hello|world')
print(pattern.search('hello world').group()) # 输出: hello# 匹配以数字开头且包含一个或多个空白字符的字符串
pattern = re.compile(r'^\d\s+')
print(pattern.match('5 ').group()) # 输出: 5 # 匹配字符串中的邮箱地址
pattern = re.compile(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b')
print(pattern.search('My email is example@test.com').group()) # 输出: example@test.com
作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。
