用一个正则表达式匹配[10.9.9.9]:5485或者10.9.9.9:5488
时间: 2024-02-25 18:53:44 浏览: 186
可以使用下面的正则表达式来匹配你提供的两种IP地址格式:
```
(?:\[)?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?:\])?:\d+
```
这个正则表达式的含义是:
- `(?:\[)?` 表示可选的左括号 `[`,使用 `(?:` 表示只匹配不捕获。
- `(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})` 表示匹配 IP 地址的四个数字段。
- `(?:\])?` 表示可选的右括号 `]`,同样使用 `(?:` 表示只匹配不捕获。
- `:\d+` 表示匹配端口号,即冒号 `:` 后面的数字。
将上面的正则表达式用于代码中,可以这样写:
```
import re
pattern = r'(?:\[)?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?:\])?:\d+'
text1 = '[10.9.9.9]:5485'
text2 = '10.9.9.9:5488'
match1 = re.match(pattern, text1)
match2 = re.match(pattern, text2)
if match1:
print(f'匹配成功: {match1.group()}')
else:
print('匹配失败')
if match2:
print(f'匹配成功: {match2.group()}')
else:
print('匹配失败')
```
输出结果为:
```
匹配成功: [10.9.9.9]:5485
匹配成功: 10.9.9.9:5488
```
阅读全文