就像免责声明一样,我只是想这样做,以便在阅读日志时让我的生活更轻松..有时他们有超过100mb的文字
我想匹配一个包含一些数据的XML组。
假设我有一个类似下面的XML(并且它们在同一行中):
<car><id>1</id><acquiredDate>23-09-2016</acquiredDate><model>BMW</model></car>
<car><id>2</id><acquiredDate>23-09-2016</acquiredDate><model>BMW</model></car>
<car><id>3</id><acquiredDate>24-09-2016</acquiredDate><model>BMW</model></car>
<car><id>4</id><acquiredDate>23-09-2016</acquiredDate><model>BMW</model></car>
我想匹配所有在23-09-2016获得的汽车。 (在这种情况下匹配3场)
到目前为止我所拥有的是<car>.*?<acquiredDate>23-09-2016<\/acquiredDate>.*?<\/car>
,但它将匹配第三辆和第四辆车。
类似的东西:
<car><id>1</id><acquiredDate>23-09-2016</acquiredDate><model>BMW</model></car>
<car><id>2</id><acquiredDate>23-09-2016</acquiredDate><model>BMW</model></car>
<car><id>3</id><acquiredDate>24-09-2016</acquiredDate><model>BMW</model></car><car><id>4</id><acquiredDate>23-09-2016</acquiredDate><model>BMW</model></car>
我尝试使用像<car>(?!.*<car>.*).*?<acquiredDate>23-09-2016<\/acquiredDate>.*?<\/car>
这样的东西,但它只匹配最后一个。
我是如何实现的?
答案 0 :(得分:1)
如果确实想要沿着正则表达式匹配-html路线走下去,那么假设您想要匹配整条线路,那么这样的话会起作用:
/(?:^\<car\>[<\w>\/]+acquiredDate\>)(23\-09\-2016)(?:.+$)/gm
^^ ^^ ^^^^
(change as required)