myStr = 'START1(stuff); II(morestuff); 8(lessstuff)'
...のは、私はこのような文字列があるとしましょう...と私は括弧の直前の文字列を抽出し、同様に、括弧内の文字列にしたい繰り返し1
,stuff
,II
,morestuff
,8
,lessstuff
。私はsplit(';')
などを使ってこれを達成することができますが、私が1台でそれをやり遂げることができるかどうかは、re.search()
で急増しました。私は... ...
test = re.search(r'''
START # This part begins each string
(?: # non-capturing group
([I0-9]+) # capture label before parentheses
\(
([^)]+?) # any characters between the parentheses
\)
(?:;)? # semicolon + space delimiter
)*
''', myStr, re.VERBOSE).groups()
を
test = re.search(r'START(?:([I0-9]+)\(([^)]+?)\)(?:;)?)*', myStr).groups()
...以上の読み取り可能な形式でを試してみました...しかし、私は唯一の最後のヒットを取得:('8', 'lessstuff')
を。式の同じ部分の複数のヒットを逆参照する方法はありますか?
あなたは 'START1'または単に '1'をしたいですか? – heemayl
これを行う場合は、最初に 're.VERBOSE'フラグについて学ぶことが不可欠です:https://docs.python.org/2/library/re.html#re.VERBOSE ;-) – thebjorn
@heemaylちょうど '1'。私はこの質問の目的のために「START」をオフにしておくことができました。 – reynoldsnlp