详细解释每个正则表达式公式,并给出相应的代码示例

本文详细介绍了Python中正则表达式的各种元字符和量词,如`d`、`w`、`s`以及重复次数的`*`、`+`、`?`和量词限定,还有字符类`[]`和边界匹配符号`^`、`$`、`b`。通过实例展示了如何在文本中进行有效匹配。
摘要由CSDN通过智能技术生成

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']
```

希望以上解释和示例能够帮助你理解常用的正则表达式公式。如果还有其他问题,请随时提问。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值