用python匹配出下列各项字符串中是IP地址的字符串。 123 255.255.255.0 192.168.0.1 256.1.1.1 This is a string. 123.123.0
时间: 2024-04-29 20:26:32 浏览: 134
可以使用正则表达式来匹配IP地址字符串,以下是一个示例代码:
```
import re
strings = ['123', '255.255.255.0', '192.168.0.1', '256.1.1.1', 'This is a string.', '123.123.0']
regex_pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b'
ip_addresses = []
for string in strings:
if re.match(regex_pattern, string):
ip_addresses.append(string)
print(ip_addresses)
```
这段代码使用了正则表达式`\b(?:\d{1,3}\.){3}\d{1,3}\b`来匹配IP地址字符串。其中`\d{1,3}`表示匹配1到3个数字,`\.`表示匹配小数点,`(?:...)`表示非捕获组,`\b`表示单词边界。最终输出匹配到的IP地址字符串列表。注意,第四个字符串`256.1.1.1`并不是合法的IP地址,因此不会被匹配到。
相关问题
用python实现:匹配出下列各项字符串中是IP地址的字符串。 123 255.255.255.0 192.168.0.1 256.1.1.1 This is a string. 123.123.0
可以使用正则表达式来匹配是否为IP地址,以下是用Python实现的代码:
```python
import re
strings = ['123', '255.255.255.0', '192.168.0.1', '256.1.1.1', 'This is a string.', '123.123.0']
pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b'
for s in strings:
match = re.match(pattern, s)
if match:
print(s, "是IP地址")
else:
print(s, "不是IP地址")
```
输出结果为:
```
123 不是IP地址
255.255.255.0 是IP地址
192.168.0.1 是IP地址
256.1.1.1 不是IP地址
This is a string. 不是IP地址
123.123.0 不是IP地址
```
将IP地址192.168.1.100与子网掩码255.255.255.0进行与运算,求结果并输出代码
将IP地址192.168.1.100与子网掩码255.255.255.0进行与运算,可以得到网络地址192.168.1.0。
以下是Python代码示例:
```python
ip = "192.168.1.100"
netmask = "255.255.255.0"
# 将IP地址和子网掩码转换为二进制字符串
ip_bin = ''.join([bin(int(x)+256)[3:] for x in ip.split('.')])
netmask_bin = ''.join([bin(int(x)+256)[3:] for x in netmask.split('.')])
# 进行与运算
network_bin = ''.join([str(int(ip_bin[i]) & int(netmask_bin[i])) for i in range(32)])
# 将二进制字符串转换为十进制IP地址
network = '.'.join([str(int(network_bin[i:i+8], 2)) for i in range(0, 32, 8)])
print(network) # 输出结果为 192.168.1.0
```
阅读全文