gengyanda
V2EX  ›  问与答

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

  •  
  •   gengyanda · Aug 30, 2013 · 6158 views
    This topic created in 4666 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
        1
    alexrezit  
       Aug 30, 2013
    你选错了方向. 请用 XPath.
    gengyanda
        2
    gengyanda  
    OP
       Aug 30, 2013
    @alexrezit 毕竟只是个小程序,觉得动用xml这类先进武器有些杀鸡焉用宰牛刀了。
    alexrezit
        3
    alexrezit  
       Aug 30, 2013
    @gengyanda
    你还是没懂.
    skyangel3
        5
    skyangel3  
       Aug 31, 2013
    {<input(\s+(name|type|value)="(.*)"\s+)+\s*/>}

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