在html代码中 python利用正则表达式提取数据问题

在下面这段html中,怎么利用正则表达式把“(SJ顺丰 051131145456)”中的单号“051131145456”提取出来,注意单号前有一个空格,单号长度不定,但是会在括号内。
我查了很多资料还是写不出来,正则表达式应该怎么样写??
能详细解释下正则表达式的句义吗

<div>
    <table style="border: 1px solid #ECECEC; height: 125px; padding-left: 5px; padding-right: 5px; background-color: #EEF7FF; width: 100%">
        <tr>
            <td style="font-size: 20px; font-weight: bold; width: 252px; padding-top: 20px;">关注信公众号</td>
            <td></td>
            <td rowspan="2">
                <img style="margin-top: 8px;" src="../Resources/Images/Box/qrcode_for_gh.png" /></td>
        </tr>
        <tr>
            <td style="font-size: 14px; vertical-align: top;">您可以随时接收物流动态、为包裹付款、获取最新的活动信息。</td>
            <td style="font-size: 14px; width: 260px; vertical-align: top;"><span style="font-size: 14px; float: right;">以最方便的方式玩转海淘></span><br />
                <span style="font-size: 14px; float: right;">扫一扫,关注</span></td>
        </tr>
    </table>
</div>

<br />
<div class="main">
    <input type="hidden" id="boxcount" value="1" />
    
    <input id="tab1" type="radio" name="tabs" style="display: none;" checked="checked"
         />
    <label for="tab1"><a style="cursor: pointer;">XJ202002232539531</a></label>
    
    <section id="content1">
        <p class="tc mt20"></p>
        <div class="result-top"><span class="col1">时间</span><span class="col2">地点和跟踪进度</span></div>
        <table class="result-info2" cellspacing="0">
            <tbody>
                
                <tr class="last">
                    <td class="row1">2020/3/8 10:12:11</td>
                    <td class="status status-first">&nbsp;</td>
                    <td>已发货:(SJ顺丰 051131145456)&nbsp;  <a target = "_blank" href="http://www.kuaidi100.com/chaxun?com=shunfeng&nu=051131145456" style="text-decoration:none;" onclick="AddQuery()">国内物流查询>></a></td>
                </tr>
                
                <tr>
                    <td class="row1">2020/3/8 10:11:11</td>
                    <td class="status">&nbsp;</td>
                    <td>已清关&nbsp; </td>
                </tr>
                
                <tr>
                    <td class="row1">2020/3/5 13:58:00</td>
                    <td class="status">&nbsp;</td>
                    <td>已到达清关口岸&nbsp; </td>
                </tr>
                `
阅读 3.1k
3 个回答

支持回顾后发断言的正则表达式引擎可以这样做:(?<=SJ顺丰\s)\d*
但是,回顾后发断言(lookbehind)由于存在回溯情况,JavaScript是不支持的。
那么可以分两次完成,第一次匹配SJ顺丰\s\d*,然后在匹配结果中用\d*去匹配单号。

可以解释下 (?<=SJ顺丰s)d+ 这个表达式的具体含义吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题