result = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", s)详细说明
时间: 2024-06-04 16:07:45 浏览: 107
python re模块findall()函数实例解析
这代码使用 Python 的 re 模块中的 findall 方法,通过正则表达式从字符串 s 中查找匹配 IP 地址的子串,具体来说:
1. r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b" 是一个正则表达式,其中:
- \b 表示单词边界,保证匹配的是完整的 IP 地址,而不是 IP 地址的一部分。
- (?:...) 是一个非捕获分组,用于把 [0-9]{1,3}\. 这个子模式重复 3 次,表示匹配三个数字和一个点号。
- [0-9]{1,3} 匹配 1~3 个数字,表示 IP 地址中的每一段数字,注意这里没有用 \d,因为 \d 还包含了其他 Unicode 数字字符。
- \. 表示匹配一个点号。
- 最后再加一个 [0-9]{1,3},表示匹配最后一段数字。
2. re.findall(pattern, string) 是 re 模块中的一个函数,用于在字符串 string 中查找所有匹配 pattern 的子串,并以列表形式返回。所以,result 就是一个列表,其中保存了所有匹配到的 IP 地址。
阅读全文