qazwsxedc 发表于 2016-2-18 16:26:41

(已解决)正则匹配多个类似项问题

本帖最后由 qazwsxedc 于 2016-2-19 08:21 编辑

有源字符串:aa<div>test1</div>bb<div>test2</div>cc<div>test3</div>dd,
字符串按同样规律可继续加长,其中aa,bb,cc,dd,test1,test2,test3是变化的,
要求匹配到test2或test3,
请问正则如何写?

afan 发表于 2016-2-18 16:48:32

怎么能 "test2 或 test3" 呢?要么指定 2 要么指定 3,要么都要,"或"是几个意思….+?/div>.+?>(.+?)</div

haijie1223 发表于 2016-2-18 16:54:25

回复 2# afan


    Afan人才~明察秋毫啊~>.*?</div>.*?<div>(.*?)</div.*?<div>(.*?)</div

qazwsxedc 发表于 2016-2-18 17:00:58

是位置不确定,有时候是test2,有时候是其它位置,如test6,所以不能以<div>test?</div>对的位置判断

afan 发表于 2016-2-18 17:22:29

是位置不确定,有时候是test2,有时候是其它位置,如test6,所以不能以test?对的位置判断
qazwsxedc 发表于 2016-2-18 17:00 http://www.autoitx.com/images/common/back.gif


    所以 你连自己都不确定是哪个? _ _||   基本的匹配需求特征都不描述怎么帮?

qazwsxedc 发表于 2016-2-18 17:26:55

是的,第一次忘了,匹配时知道<div>test?</div>xx,xx是知道的

afan 发表于 2016-2-18 17:55:51

Local $sSource = 'aa<div>test1</div>bb<div>test2</div>xx<div>test3</div>dd'
;~MsgBox(0, '源字符串', $sSource)
Local $sK = 'xx'
Local $aSRE = StringRegExp($sSource, '>([^<]+?)</div>' & $sK, 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)

qazwsxedc 发表于 2016-2-18 19:03:27

谢谢!问题解决
另外,突然想到如上同样结构的字符串,如果<div>test?</div>xx改为cat This is an example! end of cat
,[^<]该如何修改?

wen 发表于 2016-2-18 19:06:30

afan果然大神耶

afan 发表于 2016-2-18 19:48:05

谢谢!问题解决
另外,突然想到如上同样结构的字符串,如果test?xx改为cat This is an example! end of ca ...
qazwsxedc 发表于 2016-2-18 19:03 http://www.autoitx.com/images/common/back.gif


    “如果<div>test?</div>xx改为cat This is an example! end of cat” 你这样整句改 毛都匹配不到

heroxianf 发表于 2016-2-25 22:44:34

回复 10# afan


{:face (197):}   就喜欢A大不经意的幽默~
页: [1]
查看完整版本: (已解决)正则匹配多个类似项问题