我需要在表格中提取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/