python 正则表达式 匹配 字符串 ‘1&2|3’ 中 符号 | 和 & 左右两侧数字
时间: 2024-02-28 21:52:41 浏览: 201
可以使用正则表达式来匹配该字符串中的|和&符号以及它们左右两侧的数字,示例代码如下:
```python
import re
s = '1&2|3'
# 匹配 | 或 &,并获取左右数字
pattern = r'(\d+)([|&])(\d+)([|&])?(\d+)?'
matches = re.findall(pattern, s)
if matches:
for match in matches:
left_num = match[0]
operator = match[1]
right_num = match[2]
print(f'左数字为 {left_num},操作符为 {operator},右数字为 {right_num}')
if match[3]:
operator = match[3]
right_num = match[4]
print(f'左数字为 {left_num},操作符为 {operator},右数字为 {right_num}')
else:
print('未匹配到任何内容')
```
输出结果为:
```
左数字为 1,操作符为 &,右数字为 2
左数字为 2,操作符为 |,右数字为 3
```
其中,正则表达式`(\d+)([|&])(\d+)([|&])?(\d+)?`可以解释为:
- `(\d+)` 匹配一个或多个数字,并将其作为第一个捕获组
- `([|&])` 匹配一个|或&符号,并将其作为第二个捕获组
- `(\d+)` 匹配一个或多个数字,并将其作为第三个捕获组
- `([|&])?` 匹配一个或零个|或&符号,并将其作为第四个捕获组
- `(\d+)?` 匹配一个或零个数字,并将其作为第五个捕获组
因为可能存在多个符号,所以使用了`re.findall()`来获取所有符合条件的匹配结果,然后对每个匹配结果进行处理,获取左右数字和操作符。
阅读全文