V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
pinkman
V2EX  ›  问与答

正则中如果有一个段匹配有时会出现有是没有,如何将其设置为optional匹配呢?

  •  
  •   pinkman · 2013-08-04 13:43:03 +08:00 · 2392 次点击
    这是一个创建于 4135 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <a href="viewthread.php\?tid=(.*)(..style.*)">(.*)<\/a>\s+.*\s+.*\s+.*\s+.*">(.*)<\/span><\/td>

    其中的(..style.*)并非每次都有,如果这样写,遇到没有的时候就匹配不出来了,请问如何能够将其弄成optional的呢?加[]?我试了下好像不行
    6 条回复    1970-01-01 08:00:00 +08:00
    lululau
        1
    lululau  
       2013-08-04 13:44:04 +08:00
    右原括号后面直接加个问号就行了
    lululau
        2
    lululau  
       2013-08-04 13:44:19 +08:00   ❤️ 1
    右圆括号后面直接加个问号就行了
    pinkman
        3
    pinkman  
    OP
       2013-08-04 13:46:23 +08:00
    @lululau (..style.*)?这般?不行,这样的话,在有的情况下,第一个group匹配出来的结果就成了
    11&extra=page%3D1" style="font-weight: bold;color: red,而我需要的是11&extra=page%3D1
    pinkman
        4
    pinkman  
    OP
       2013-08-04 13:49:43 +08:00
    整段html如下,其中style属性就是标题有,有些标题没有

    <a href="viewthread.php?tid=11&extra=page%3D1" style="font-weight: bold;color: red">(28/12/2013更新)</a>
    &nbsp; &nbsp;( <img src="images/wtat-1/multipage.gif" align="absmiddle" border="0"> <a href="viewthread.php?tid=11&extra=page%3D1&page=1">1</a> <a href="viewthread.php?tid=11&extra=page%3D1&page=2">2</a> <a href="viewthread.php?tid=11&extra=page%3D1&page=3">3</a> <a href="viewthread.php?tid=11&extra=page%3D1&page=4">4</a> )</td></tr></table>
    </td><td width="14%" class="altbg1" align="center">
    <a href="viewpro.php?uid=3">作者</a>
    <br><span class="smalltxt">2012-8-29</span></td>
    <td width="6%" class="altbg2" align="center">114</td>
    <td width="6%" class="altbg1" align="center">13652</td>
    <td width="19%" class="altbg2">
    <table cellpadding="0" cellspacing="0" border="0" width="100%"><tr align="right">
    <td nowrap><font class="smalltxt">2013-7-19 02:56<br>
    lululau
        5
    lululau  
       2013-08-04 14:03:45 +08:00   ❤️ 1
    tid=(.*) 改成 tid=([^"]*)
    pinkman
        6
    pinkman  
    OP
       2013-08-04 14:09:50 +08:00
    @lululau 感谢lululau,还是不行,这样做了后,如果将html中的 style="font-weight: bold;color: red"删掉后,就匹配不出来东西了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5389 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:31 · PVG 17:31 · LAX 01:31 · JFK 04:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.