我第一次在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 & Restrictions</th>
</tr>
<tr>
<td>
<a class="doctor" href="details.aspx?view=1&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&id= 85956">(.*) </a>')
它一直空着,我无法弄清楚为什么,任何人都有任何想法?
感谢您的回答,我已将其更改为;
patFinderName = re.compile('<a class="doctor" href=".*">(.*) </a>')
现在效果很好。
答案 0 :(得分:3)
?
是正则表达式中的魔术标记,表示零或前一个原子之一。如你想要一个文字问号符号,你需要逃避它。
答案 1 :(得分:0)
你应该逃脱正则表达式中的?
:
In [8]: re.findall('<a class="doctor" href="details.aspx\?view=1&id= 85956">(.*)</a>', text)
Out[8]: ['Hull, Christopher Merritt ']