正则表达式 \d
什么是正则表达式?
正则表达式是一种用于字符串匹配的工具,它可以满足我们在不同场景下的字符串匹配需求。例如,我们可以使用正则表达式来匹配一个电子邮件地址、它可能包含小写字母、大写字母、数字、下划线、句点和@符号。正则表达式是由一个或多个字符组成的模式,这些模式可以在搜索文本时进行匹配。
什么是\d?
\d
代表一位数字,其匹配的是任意一个阿拉伯数字(0~9)。
例如,如果我们要匹配一个字符串中的所有数字,我们可以使用\d
:
import re
pattern = r'\d' # 匹配单个数字
test_str = 'hello 12345'
result = re.findall(pattern, test_str)
print(result) # ['1', '2', '3', '4', '5']
上述代码中,r'\d'
表示匹配单个数字的正则表达式。
\d的用法
\d
可以与其他正则表达式字符一起使用,匹配不同的数字格式。
1. 匹配多位数字
我们可以通过在\d
后面加上+
字符,匹配多个数字。
例如,如果我们要匹配一个字符串中的所有数字,包括多位数字,我们可以使用\d+
:
import re
pattern = r'\d+' # 匹配多个数字
test_str = 'hello 12345 6789'
result = re.findall(pattern, test_str)
print(result) # ['12345', '6789']
上述代码中,r'\d+'
表示匹配多个数字的正则表达式。
2. 匹配指定数字
我们可以使用花括号{}表示数量,这样可以指定匹配的数字个数。例如,\d{3}
表示匹配3位数字。
例如,如果我们要匹配一个字符串中的所有3位数字,我们可以使用\d{3}
:
import re
pattern = r'\d{3}' # 匹配3位数字
test_str = 'hello 12345 6789 987 456 34567 234'
result = re.findall(pattern, test_str)
print(result) # ['123', '678', '987', '456', '345', '234']
上述代码中,r'\d{3}'
表示匹配3位数字的正则表达式。
3. 匹配数字开头
有时候我们需要匹配以数字开头的字符串。可以使用^
表示字符串开始。
例如,如果我们要匹配一个字符串的开头是数字的字符串,我们可以使用^\d
:
import re
pattern = r'^\d' # 匹配数字开头字符串
test_str = '12345 hello world 6789'
result = re.findall(pattern, test_str)
print(result) # ['1']
上述代码中,r'^\d'
表示匹配数字开头的字符串的正则表达式。
4. 匹配数字结尾
同样,我们也可以匹配以数字结尾的字符串。可以使用$
表示字符串结束。
例如,如果我们要匹配一个字符串的结尾是数字的字符串,我们可以使用\d$
:
import re
pattern = r'\d$' # 匹配数字结尾字符串
test_str = 'hello 12345 6789'
result = re.findall(pattern, test_str)
print(result) # ['9']
上述代码中,r'\d$'
表示匹配数字结尾的字符串的正则表达式。
5. 匹配除数字外的其他字符
\d
匹配的是数字,如果我们想匹配除数字外的其他字符,我们可以使用\D
。
例如,如果我们要匹配一个字符串中除数字外的所有字符,我们可以使用\D
:
import re
pattern = r'\D' # 匹配除数字外的其他字符
test_str = 'hello 12345 6789'
result = re.findall(pattern, test_str)
print(result) # ['h', 'e', 'l', 'l', 'o', ' ', ' ', ' ']
上述代码中,r'\D'
表示匹配除数字外的其他字符的正则表达式。
结论
正则表达式\d
是用于匹配阿拉伯数字(0~9)的基本元字符,我们可以通过它来达到匹配数字、多位数字、指定数字等不同需求。在实际编程中,正则表达式\d
也常被广泛应用。