我很难搞清楚这是否可以使用正则表达式。我有以下字符串(原始字符串更长,它是一个json字符串):
... "WorkstationName":"WS-8300E-007","IpAddress":"192.10.10.10" ...
我想抓住 IpAddress ,或者,如果IpAddress不存在, WorkstationName
# IPADDR = 192.10.10.10
... "WorkstationName":"WS-8300E-007","IpAddress":"192.10.10.10" ...
# IPADDR = WS-8300E-007
... "WorkstationName":"WS-8300E-007","IpAddress":"-" ...
我尝试了几种模式:
但没有成功,我需要捕获命名组(?P<ipaddr>)
中的模式,以便其他软件可以处理输出。
我最终得到的最新正则表达式是:
(?:("WorkstationName":)(?=.*IpAddress":"-"))?(?(1)(?:"([^"]+)")?|.*IpAddress":"([^"]+")?)(?P<ipaddr>(?(2)\2|\3))
所以,基本上,我这样做:
我正在使用命名组的困难时期,我已经成功捕获了2组中的所有内容,但我绝对需要根据字符串在同一组中。
我无法使用JSON解析器