Skip to main content
 首页 » 编程设计

python之正则表达式:匹配 2 个单词之间的所有字符,返回奇怪的输出

2024年10月24日34kevingrace

在本文中:

"IPAddress":"10.0.0.18","PolicerID":"","IPAddress":"","PolicerID":"" 

我想捕获所有的 ips,在这个例子中是 10.0.0.18 和空字符串

我尝试使用这个正则表达式:

(?<="IPAddress":")(.*?)(?=")

返回 10.0.0.18 和 ", 它从 PolicerID 中获取第一个“而不是 IPAddress 中的最后一个”。

你能帮帮我吗? 谢谢

请您参考如下方法:

你可以保持简单,只使用一个捕获组:

>>> str = r'"IPAddress":"10.0.0.18","PolicerID":"","IPAddress":"","PolicerID":""' 
>>> print re.findall(r'"IPAddress":"([^"]*)', str) 
['10.0.0.18', ''] 
>>> 

但是,如果您必须使用后向断言,请使用此正则表达式:

(?<="IPAddress":")([^"]*) 

([^"]*) 是一个否定模式,用于匹配 0 个或多个非双引号的字符。

RegEx Demo