2

としてフォーマットされた文字列がありますresults_item12345。数値部分の長さは4桁または5桁です。文字は常に小文字になり、数値以外の部分には常にアンダースコアが表示されます。

私はそれを以下を使用して抽出しようとしました:

 import re
 string = 'results_item12345'
 re.search(r'[^a-z][\d]',string)

ただし、左端の2桁しか取得できません。どうすれば全体の番号を取得できますか?

4

3 に答える 3

7

文字列の末尾の数字だけを気にすると仮定すると、次の式は文字列の末尾の 4 桁または 5 桁に一致します。

\d{4,5}$

それ以外の場合、以下は提供された要件に一致する完全な正規表現になります。

^[a-z_]+\d{4,5}$
于 2012-10-11T19:11:04.943 に答える
2

文字列内の任意の数字と一致させたい場合は、次のように検索できます。

r'[\d]{4,5}'

何らかの検証が必要な場合は、次を使用する必要があります。

r'^result_item[\d]{4,5}$'
于 2012-10-11T19:13:17.640 に答える
1
import re    
a="results_item12345"
pattern=re.compile(r"(\D+)(\d+)")
x=pattern.match(a).groups()
print x[1]
于 2014-05-27T11:12:32.377 に答える