入力文字列内の特定の文字列値の出現を見つけるために、python の re.findall メソッドを使用しています。たとえば、「ABCdef」文字列での検索から、2 つの検索要件があります。
- 単一大文字から始まる文字列を検索します。
- 1 の後に、すべて大文字を含む文字列を見つけます。
たとえば、入力文字列と予想される出力は次のようになります。
'USA' -- output: ['USA']
'BObama' -- output: ['B', 'Obama']
'Institute20CSE' -- output: ['Institute', '20', 'CSE']
だから私の期待
>>> matched_value_list = re.findall ( '[A-Z][a-z]+|[A-Z]+' , 'ABCdef' )
返品すること['AB', 'Cdef']
です。
しかし、これは起こっていないようです。私が得るのは['ABC']
、正規表現の後半部分と完全な文字列に一致する戻り値です。
見つかった一致を無視できる方法はありますか。したがって、 once'Cdef'
は と一致し'[A-Z][a-z]+'
ます。正規表現の 2 番目の部分 (つまり'[A-Z]+'
) は、残りの文字列とのみ一致します'AB'
か?