是否有正则表达式,它将在本文中以适当的格式读取并返回IP地址?注意它是向后的,所以正则表达式必须向后逐步执行代码然后替换'|'用'。'
这让我发疯了......我很感激你的帮助;)
摘自代码:
4.3 / d / C / BA “10: ”0://8.7/1/1.f“,Z: ”0://8.7/1/yx“,W:” 0://6.5 .4.3 / I / v / UT “S: ”R“,q:p,O:N,9:\ '0 \',M:[{2: ”L“,K:” 0://8.7 /1/1.f “},{2:” J”,H:{E:\ '0://6.5.4.3/d/c/ba \',\ '9 \':\ '0 \' }},{2: “克”}]}); '36,40' |类型| 187 | 20 | 207 | 31 | COM | hystorystingbulk |
期望的回报:
31.207.20.187
谢谢!
编辑:我有点点零碎,但我不能把它放在一起以获得理想的结果
(?< = / | ^) - 积极的背后隐藏
\ b \ d {1,3}。\ d {1,3}。\ d {1,3}。\ d {1,3} \ b - 这会让你获得ip 给定的文件/文本
\ b \ d {1,3} \ | \ d {1,3} \ | \ d {1,3} \ | \ d {1,3} \ b - 这会返回ip(但是 向后。记住我希望它翻转)并用'|'分隔代替 '。'
有人问....我正在使用Python并使用http://www.regexplanet.com/advanced/python/index.html THX
进行测试答案 0 :(得分:1)
可能最好的方法是将每个号码分别存储到一个组中,然后格式化并将这些组合加在一起。
一些这样的:
/(\d+)\|(\d+)\|(\d+)|(\d+)/
这会创建5个不同的匹配组,每组匹配一组父母( )
,一组围绕整个匹配。但这不是Perl!现在,在Python中必须更像
match("(\\d+)\\|(\\d+)\\|(\\d+)|(\\d+)", ..)
然后,使用group
获取各个匹配项并按正确顺序将它们组合在一起:
group(...) "." group(...) "." group(...) "." group(...)
多田!
免责声明:这不是真正的Pythonic语法,但应该给你一个想法。
答案 1 :(得分:0)
import re
expression = re.compile("(\d{1,3})\|(\d{1,3})\|(\d{1,3})\|(\d{1,3})")
text = """4.3/d/c/b.a",10:"0://8.7/1/1.f",z:"0://8.7/1/y.x",w:"0://6.5.4.3/i/v/u.t",s:"r",q:p,o:n,9:\'0\',m:[{2:"l",k:"0://8.7/1/1.f"},{2:"j",h:{e:\'0://6.5.4.3/d/c/b.a\',\'9\':\'0\'}},{2:"g"}]});',36,40,'|type|187|20|207|31|com|hystorystingbulk|"""
matches = expression.findall(text)
IPs = ['.'.join(reversed(match)) for match in matches]
>>> print(IPs)
['31.207.20.187']