2012-08-15 51 views

回答

3

re.search讓你拉匹配組出來的正則表達式匹配。在你的情況下,你會想用p.group(1)來提取第一個加括號的匹配,這應該是你有正則表達式的電子郵件。

+0

謝謝,似乎我需要閱讀有關組。 – 2012-08-15 15:08:14

+0

這是一個很好的資源:http://www.regular-expressions.info/brackets.html – murgatroid99 2012-08-15 15:09:00

2

使用前視和後視以確保圓括號在那裏,但是爲了防止您捕捉它們。您可以訪問捕獲組而不是整個正則表達式。

p = re.search('\((.*?)\)', c).group(1) 

任何一種方式都可以。

+0

給予好評的超前/回顧後。 – kindall 2012-08-15 15:16:55

0

我想你在粘貼之前已經改變了代碼。

如果我做的:

>>> import re 
>>> c="Alex Jatt, ([email protected])" 
>>> p = re.search('\((.*?)\)', c) 
>>> print p 
<_sre.SRE_Match object at 0x10bd68af8> 

你想看看組:

>>> import re 
>>> c="Alex Jatt, ([email protected])" 
>>> p = re.search('\((.*?)\)', c) 
>>> print p.groups()[0] 
[email protected] 
3

隨着加入也可以做到這一點..

a= ''.join(c for c in a if c not in '()') 

或正則表達式..

In[20]: import re 

In[21]: name= re.sub('[()]', '', a) 

In [22]: name 
Out[22]: 'Alex Jatt, [email protected]' 
相關問題