0

我第一次使用 Python,我使用 Mechanize 搜索网站以及 BeautifulSoup 来选择特定的 div,现在我正在尝试使用正则表达式获取特定的句子。这是汤对象的内容;

    <div id="results">
   <table cellspacing="0" width="100%">
     <tr>
       <th align="left" valign="middle" width="32%">Physician Name, (CPSO#)</th>
       <th align="left" valign="middle" width="36%">Primary Practice Location</th>
       <!-- <th width="16%" align="center" valign="middle">Accepting New Patients?</th> --> 
       <th align="center" valign="middle" width="32%">Disciplinary Info  &amp; Restrictions</th>
     </tr>

    <tr>
        <td>
            <a class="doctor" href="details.aspx?view=1&amp;id= 85956">Hull, Christopher Merritt </a> (#85956)
        </td>
        <td>Four Counties Medical Clinic<br/>1824 Concessions Dr<br/>Newbury ON  N0L 1Z0<br/>Phone: (519) 693-0350<br/>Fax: (519) 693-0083</td>
        <!-- <td></td> --> 
        <td align="center"></td>
    </tr>
  </table>
</div>

(感谢您对格式化的帮助)

我得到文本“Hull, Christopher Merritt”的正则表达式是;

patFinderName = re.compile('<a class="doctor" href="details.aspx?view=1&amp;id= 85956">(.*) </a>')

它一直空着,我不知道为什么,有人有什么想法吗?

谢谢大家的回答,我改成了;

patFinderName = re.compile('<a class="doctor" href=".*">(.*) </a>')

现在它工作得很好。

4

2 回答 2

3

?是正则表达式中的一个魔术标记,表示前一个原子的零个或一个。当你想要一个文字问号符号时,你需要转义它。

于 2012-06-12T01:39:13.970 回答
0

你应该在你的正则表达式中转义?

In [8]: re.findall('<a class="doctor" href="details.aspx\?view=1&amp;id= 85956">(.*)</a>', text)
Out[8]: ['Hull, Christopher Merritt ']
于 2012-06-12T01:39:36.953 回答