これは区切られたテキストですが、正規表現で解析します。Python re.findall()で一致するすべてのグループを取得する
2番目の列と次の秒またはミリ秒です。
>>> import re
>>> s = '''aaa
bbb|30s
ccc|500ms|1s'''
>>> re.findall(r'(\w+)(?:\|(\d+(?:s|ms)))?(?:\|(\d+(?:s|ms)))?', s)
出力(期待の答え):
[('aaa', '', ''), ('bbb', '30s', ''), ('ccc', '500ms', '1s')]
私は*または{X、Y}のような量指定子を使用して、このパターンを短くしたかったです。
だから私はやった:私は失敗した
>>> re.findall(r'(\w+)(?:(?:\|(\d+(?:s|ms)))*)', cmdstr)
[('aaa', ''), ('bbb', '30s'), ('ccc', '500ms')] # WRONG
。
この正規表現パターンはどのようにすることができますか?
私はそれを得ました。ありがとうございました。 – ijmo