有字符串如下
<p fund="000001">
<text stock="000002" fund="000003" />
</p>
需要用正则表达式将000001 000002 000003解析出来,写了如下正则语句
<.[^<>]*?\\sfund=['\"]?(.*?)['\"]?(\\s.*?)?>
但是想同时将 fund 和 stock 匹配处出来。试了 将正则表达式中 fund替换成 fund|stock 却不行。该怎么办?
也就是用正则来匹配 fund="数字" stock="数字" 这些内容,并且捕捉其中的数字的意思,对吧
var reg=/\s+?(?:fund|stock)=\"(\d+)\"/gi;这是亲测结果:
可以在这里在线测试:
fund|stock 要用括号括起来作为一个整体,写成:
String pattern = "<.[^<>]*?\\s(fund|stock)=['\"]?(.*?)['\"]?(\\s.*?)?>";不括起来的话
等价于
<.[^<>]*?\\sfund或者
stock=['\"]?(.*?)['\"]?(\\s.*?)?>匹配到的结果就是
<p fund
<text stock="000002" fund
显然不是你想要的