0

I have a list of strings. Each string contains random text and a sequence of numbers and letters that may or may not match a regex.

Example string:

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

123-abc-456 will match a regex.

I wish to store all those matching sequences into a new list; sequence only that is, not the bla bla bla.

How could this be done? I need to break out the sequence only using the regex somehow.

4

2 回答 2

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按照上面的建议使用。

于 2013-04-25T13:10:42.077 回答
1

在您的正则表达式中使用大括号。然后,您可以使用 groups(1)、groups(2) 来隔离匹配的部分。

于 2013-04-25T13:10:53.950 回答