0

文字列のリストがあります。各文字列には、ランダムなテキストと、正規表現に一致する場合と一致しない場合がある一連の数字と文字が含まれています。

文字列の例:

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

123-abc-456正規表現に一致します。

これらの一致するすべてのシーケンスを新しいリストに保存したいと思います。bla bla blaではなく、シーケンスのみです。

これはどのように行うことができますか?どういうわけか正規表現のみを使用してシーケンスを分割する必要があります。

4

2 に答える 2

1

関心のある文字列ごとに「シーケンス」が 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 に答える