としてフォーマットされた文字列がありますresults_item12345
。数値部分の長さは4桁または5桁です。文字は常に小文字になり、数値以外の部分には常にアンダースコアが表示されます。
私はそれを以下を使用して抽出しようとしました:
import re
string = 'results_item12345'
re.search(r'[^a-z][\d]',string)
ただし、左端の2桁しか取得できません。どうすれば全体の番号を取得できますか?
文字列の末尾の数字だけを気にすると仮定すると、次の式は文字列の末尾の 4 桁または 5 桁に一致します。
\d{4,5}$
それ以外の場合、以下は提供された要件に一致する完全な正規表現になります。
^[a-z_]+\d{4,5}$
文字列内の任意の数字と一致させたい場合は、次のように検索できます。
r'[\d]{4,5}'
何らかの検証が必要な場合は、次を使用する必要があります。
r'^result_item[\d]{4,5}$'
import re
a="results_item12345"
pattern=re.compile(r"(\D+)(\d+)")
x=pattern.match(a).groups()
print x[1]