あなたが求める数は、文字列の末尾に常にある場合は、正規表現のこの種でそれを取得することができます:([0-9]+)[^0-9]*$
プログラム例:
import re
print re.search(r'([0-9]+)[^0-9]*$','abd-256PA\r\n20db').group(1)
出力例:
20
テストプログラム:
import re
str = ['abd-256PA\r\n20db',
'abc-256\r\n0db',
'abc-256aa0db',
'uio1289248282dasd1786ddass',
'12',
'2101a123aasdqwqwe']
for x in str:
print '"%s" >> "%s"' %(x, re.search(r'([0-9]+)[^0-9]*$',x).group(1))
テスト出力:
"abd-256PA
20db" >> "20"
"abc-256
0db" >> "0"
"abc-256aa0db" >> "0"
"uio1289248282dasd1786ddass" >> "1786"
"12" >> "12"
"2101a123aasdqwqwe" >> "123"
要求によって説明:
Pythonにはsearchという名前の正規表現モジュールreがあり、与えられた文字列内の正規表現の一致を検索しようとします。
基本的に、これは何([0-9]+)[^0-9]*$
平均である:
[0-9]
任意の数の0から9
[0-9]+
1または0から9
[^0-9]
に任意の数のより多くのoccurance任意の文字BUT番号0〜 〜9
[^0-9]*
0〜9の数字がない0文字以上のシーケンス
- 01グループ、我々は
([0-9]+)[^0-9]*$
文字列
の終わりに続いて0以上の非数字が続く1つの以上の数字の列を見つけようとしているものをキャプチャする文字列
(...)
の終了関数re.searchは2つのパラメータを取ります:正規表現とその正規表現を検索する文字列です。そして、タイプMatchObjectのオブジェクトを返します。基本的にはgroup(1)
は「私に最初に捕まえたグループを教えてください」((...)
のもの)を意味します。
検索しようとしているパターンは何ですか? – Abhijit
このサイトは特定の*課題*についてではなく、具体的な*質問*について...あなたがこれまでに書いた(機能していない可能性のある)コードをいくつか提供してください。 –
正規表現(reモジュール)を使用 – pylover