lihongya111 2021-04-04 13:06 采纳率: 100%
浏览 34
已采纳

Python 正则表达式输出不符合预期

大佬们,python 小白请教一个正则表达式的问题:

1   编码目的:找到字符串中IP地址的信息

2   编码内容:

import re
pattern = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'
str1 = '127.0.2.3 192.168.4.66'
match = re.findall(pattern,str1)
print(match)

3  编码输出:

[('127.0.2.3', '.3'), ('192.168.4.66', '.66')]

4   疑问:

为什么输出除了预想中的IP地址之外,还有有’.3' 和’.66‘?

5    个人想法:

([1-9]{1,3}(\.[0-9]{1,3}){3}) 应该就是代表了 IP地址的格式,是不是python会先运行一遍外部的小括号内的内容,再运行一遍内部小括号的内容,但是如果是这样的话,为什么运行内部小括号里的内容输出是第三个小数点后的.3 和.66呢,而不是.0和.168,难道{3} 在运行外部小括号时表示重复三次,到内部小括号时{3}虽然在括号外部,但是仍然起作用,表示第三个结果?

 

  • 写回答

1条回答 默认 最新

  • cclxpp123 2021-04-04 14:04
    关注

    括号代表捕获,要消除捕获可以

    pattern = r'([1-9]{1,3}(?:\.[0-9]{1,3}){3})'
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?