python - 在 python 中使用 [ 或 ( 的正则表达式

标签 python regex

我需要在表格中提取IP地址

prosseek.amer.corp.com [10.0.40.147]

prosseek.amer.corp.com (10.0.40.147)

使用 Python。如何使用 Python 获取这两种情况的 IP?我从类似的东西开始

site = "prosseek.amer.corp.com"
m = re.search("%s.*[\(\[](\d+\.\d+\.\d+\.\d+)" % site, r)

但它不起作用。

已添加

m = re.search("%s.+(\(|\[)(\d+\.\d+\.\d+\.\d+)" % site, r)
m.group(2)
m = re.search(r"%s.*[([](\d+\.\d+\.\d+\.\d+)" % site, r)
m.group(1)

似乎有效。

最佳答案

您不需要转义元字符 (*, (, ), ., ...) 在字符组中(] 除外,除非它是字符组中的第一个字符;[][]+ 将匹配一系列方括号。)

关于 Python 的另一个技巧是使用 r'...' 风格的字符串。对于它们,反斜杠没有特殊含义。 r'\\' 将打印 \\,因为反斜杠没有特殊含义:

m = re.search(r"%s.*[([](\d+\.\d+\.\d+\.\d+)" % site, r)

在上面的字符串中它没有任何区别,因为 \d 在 Python 中没有任何意义,但是当涉及到像 \r 这样的东西时, \\ 等,它让生活更轻松。

关于python - 在 python 中使用 [ 或 ( 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3602225/

相关文章:

javascript - 为什么我的正则表达式在这种特殊情况下不起作用

python - 为什么在软件包安装时有时会创建 .pth 文件?

python - 如何使用 pyopencv_to 函数?

python - OpenCV Python鼠标事件无响应

regex - 使用 shell 脚本从 passwd 文件中获取用户名

regex - sed:用 Camel:Case 替换 CamelCase

python - 在 pyplot 中绘制没有 y 值的 x 值

python - 我可以使用 JSON 数据在 Django 中添加新对象吗?

python - ansible正则表达式替换所有匹配的string1,排除string2

javascript - 使用 String.prototype.replace 删除非字母数字文本