gengyanda
V2EX  ›  问与答

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

  •  
  •   gengyanda · Aug 30, 2013 · 6480 views
    This topic created in 4816 days ago, the information mentioned may be changed or developed.
    大概有一个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了。

    目前没什么辙,哪位懂正则的帮忙解答下。
    5 replies  •  1970-01-01 08:00:00 +08:00
    alexrezit
    alexrezit
    Aug 30, 2013
    1
    你选错了方向. 请用 XPath.
    gengyanda
    gengyanda
    OP
    Aug 30, 2013
    2
    @alexrezit 毕竟只是个小程序,觉得动用xml这类先进武器有些杀鸡焉用宰牛刀了。
    alexrezit
    alexrezit
    Aug 30, 2013
    3
    @gengyanda
    你还是没懂.
    skyangel3
    skyangel3
    Aug 31, 2013
    5
    {<input(\s+(name|type|value)="(.*)"\s+)+\s*/>}

    加个\s+看看, 如果你给个数据html, 我可以帮忙做看看
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1086 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:43 · PVG 07:43 · LAX 15:43 · JFK 18:43
    ♥ Do have faith in what you're doing.