如何在PHP中使用正则表达式匹配html某标签内的特定几个属性

2013-08-30 21:31:24 +08:00
 gengyanda
大概有一个html表单,里面全都是这些:
<input type="hidden" name="from" value="xx"/>
<input type="hidden" name="type" value="number"/>
...

我想匹配出每个input的type,name和value属性。
写了一个正则,

{<input(\s+(name|type|value)="(.*)")+\s*/>},

能匹配到type是不错,可是之后就一直匹配出了

'hidden" name="type" value="number'

这些。
试着加了U,反而只能匹配出一个value了。

目前没什么辙,哪位懂正则的帮忙解答下。
5272 次点击
所在节点    问与答
5 条回复
alexrezit
2013-08-30 21:33:47 +08:00
你选错了方向. 请用 XPath.
gengyanda
2013-08-30 21:35:09 +08:00
@alexrezit 毕竟只是个小程序,觉得动用xml这类先进武器有些杀鸡焉用宰牛刀了。
alexrezit
2013-08-30 21:40:44 +08:00
@gengyanda
你还是没懂.
Perry
2013-08-30 22:45:56 +08:00
skyangel3
2013-08-31 01:34:42 +08:00
{<input(\s+(name|type|value)="(.*)"\s+)+\s*/>}

加个\s+看看, 如果你给个数据html, 我可以帮忙做看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/80808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX