私は文字列を持っており、キャプチャするには最初の要素が必要です。正規表現を使って作業しています
s = extra-root, May 15, 2024, Entry, abcd: efgh
私のようにそれをやって、
print s.split(",")[0]
しかし、カンマで文字列の最初の要素を取得するために再使用する方法はありますか?私は "余分なルート"をしたい。
私は文字列を持っており、キャプチャするには最初の要素が必要です。正規表現を使って作業しています
s = extra-root, May 15, 2024, Entry, abcd: efgh
私のようにそれをやって、
print s.split(",")[0]
しかし、カンマで文字列の最初の要素を取得するために再使用する方法はありますか?私は "余分なルート"をしたい。
条件付きの通常の分割機能を使用することができます。正規表現が必要な場合は、re.search
が最初の一致を返す最良の選択です。
>>> s = 'extra-root, May 15, 2024, Entry, abcd: efgh, ds:sd'
>>> [i for i in s.split(',') if ':' in i][0]
' abcd: efgh'
>>> next(i for i in s.split(',') if ':' in i)
' abcd: efgh'
または
[^,]*
re.search(r'[^,]*:[^,]*', s).group()
は、任意の文字に一致しなく,
、0回以上の。:
はコロンに一致します。[^,]*
は、,
の0文字以上の任意の文字に一致します。更新:
カンマで区切られた文字列の最初の要素を取得します。
re.search(r'^[^,]*', s).group()
^
開始[^,]*
どれ文字ではなく、カンマの、0回以上。開始時に空の文字列と一致するはずですが、+
を使用すると空文字列は取り込まれません。 +
は、少なくとも1つのcharが存在すると予想しているためです。
最初の要素のセミコロンはどこにありますか? –
これはカンマで、セミコロンではありません。 – houcros
'print(re.sub(r '、。*'、 '' s))' – rock321987