1. 字母和数字的匹配:
- `\d`:匹配任意一个数字字符。
代码示例:
```python
import re
text = "I am 18 years old."
result = re.findall(r"\d", text)
print(result) # 输出:['1', '8']
```
- `\w`:匹配任意一个字母或数字字符。
代码示例:
```python
import re
text = "Hello World! This is 2022."
result = re.findall(r"\w", text)
print(result) # 输出:['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd', 'T', 'h', 'i', 's', 'i', 's', '2', '0', '2', '2']
```
- `\s`:匹配任意一个空白字符(包括空格、制表符等)。
代码示例:
```python
import re
text = "Hello\tWorld! This is a test."
result = re.findall(r"\s", text)
print(result) # 输出:[' ', '\t', ' ', ' ', ' ', ' ']
```
2. 重复数量:
- `*`:匹配前面的表达式0次或多次。
代码示例:
```python
import re
text = "abc abbc abbbc abbbbc"
result = re.findall(r"ab*c", text)
print(result) # 输出:['abc', 'abbc', 'abbbc', 'abbbbc']
```
- `+`:匹配前面的表达式1次或多次。
代码示例:
```python
import re
text = "abc abbc abbbc abbbbc"
result = re.findall(r"ab+c", text)
print(result) # 输出:['abc', 'abbc', 'abbbc', 'abbbbc']
```
- `?`:匹配前面的表达式0次或1次。
代码示例:
```python
import re
text = "color colour"
result = re.findall(r"colou?r", text)
print(result) # 输出:['color', 'colour']
```
- `{n}`:匹配前面的表达式恰好n次。
代码示例:
```python
import re
text = "abc abc abc"
result = re.findall(r"ab{2}c", text)
print(result) # 输出:['abbc', 'abbc']
```
- `{n,}`:匹配前面的表达式至少n次。
代码示例:
```python
import re
text = "abc abbc abbbc abbbbc"
result = re.findall(r"ab{2,}c", text)
print(result) # 输出:['abbc', 'abbbc', 'abbbbc']
```
- `{n,m}`:匹配前面的表达式至少n次、最多m次。
代码示例:
```python
import re
text = "abc abbc abbbc abbbbc abbbbbc"
result = re.findall(r"ab{2,4}c", text)
print(result) # 输出:['abbc', 'abbbc', 'abbbbc', 'abbbbc']
```
3. 字符类:
- `[ ]`:匹配方括号内的任意一个字符。
代码示例:
```python
import re
text = "apple banana cherry"
result = re.findall(r"[aeiou]", text)
print(result) # 输出:['a', 'e', 'a', 'a', 'e']
```
- `[^ ]`:匹配除方括号内的字符之外的任意一个字符。
代码示例:
```python
import re
text = "apple banana cherry"
result = re.findall(r"[^aeiou]", text)
print(result) # 输出:['p', 'p', 'l', ' ', 'b', 'n', 'n', ' ', 'c', 'h', 'r', 'r', 'y']
```
4. 边界:
- `^`:匹配字符串的开头。
代码示例:
```python
import re
text = "Hello World!"
result = re.findall(r"^Hello", text)
print(result) # 输出:['Hello']
```
- `$`:匹配字符串的结尾。
代码示例:
```python
import re
text = "Hello World!"
result = re.findall(r"World!$", text)
print(result) # 输出:['World!']
```
- `\b`:匹配一个单词边界。
代码示例:
```python
import re
text = "Hello, world! This is a test."
result = re.findall(r"\bis\b", text)
print(result) # 输出:['is']
```
5. 分组和捕获:
- `( )`:用于分组和捕获匹配的内容。
代码示例:
```python
import re
text = "apple banana cherry"
result = re.findall(r"(a\w+)", text)
print(result) # 输出:['apple']
```
希望以上解释和示例能够帮助你理解常用的正则表达式公式。如果还有其他问题,请随时提问。