2013-04-25 115 views
0

我有一個字符串列表。 每個字符串都包含隨機文本和可能與正則表達式匹配或不匹配的數字和字母序列。檢查字符串的一部分是否包含正則表達式

例字符串:

"Bla bla bla 123-abc-456 bla bla blaaha" 

123-abc-456將匹配正則表達式。

我希望將所有匹配序列存儲到一個新列表中;只有序列,而不是bla bla bla。

這怎麼辦?我需要以某種方式使用正則表達式來打破序列。

+1

use're.findall()' – 2013-04-25 13:08:42

+3

不可能。即使任意字符串也可以是正則表達式。 – nhahtdh 2013-04-25 13:08:45

+0

'bla bla bla'是一個有效的正則表達式 – jamylak 2013-04-25 13:09:29

回答

1

如果你有每串,你有興趣只有一個「序」:

In [1]: import re 

In [2]: re.search(r'\d{3}-\D{3}-\d{3}', 
    ..: "Bla bla bla 123-abc-456 bla bla blaaha").group() 
Out[2]: '123-abc-456' 

只是這樣做的for循環,結果保存到一個新的列表。

如果您想要多個匹配,請按上面的建議使用re.findall

1

在正則表達式中使用大括號。然後,您可以使用組(1),組(2)來隔離匹配的部分。

相關問題