Pythonで文字列からパーセンテージ(%)を抽出する方法
文字列からパーセンテージ(%)を抽出したい場合、Pythonの正規表現モジュール「re」が提供する findall メソッドを使うのが効果的です。この記事では、具体的なサンプルコードとともにその手順を解説します。
サンプルコード
以下に、文字列から % 記号を抽出する実装例を示します。
import re
my_string = 'Python is % always fun % to learn % and teach'
print("The list is : ")
print(my_string)
my_result = re.findall('\d*%', my_string)
print("The resultant list is : ")
print(my_result)
出力結果
The list is : Python is % always fun % to learn % and teach The resultant list is : ['%', '%', '%']
処理の流れと解説
まず、正規表現を扱うための
reモジュールを環境にインポートします。次に、処理対象となる文字列を定義し、コンソールに表示します。
reモジュールのfindallメソッドに対して、抽出したいパターン(ここでは\d*%)と処理対象の文字列を渡します。マッチした結果はすべてリストとして返され、変数に代入されます。
最後に、その変数の内容を画面に出力します。
パターンのポイント
使用している正規表現パターン \d*% は、「0個以上の数字に続く % 記号」を意味します。そのため、この例では数字を伴わない % 記号だけがリストとして取得されています。
もし「50%」や「12.5%」のように、実際の数値を含むパーセンテージを抽出したい場合は、\d+%(1個以上の数字にマッチ)や \d+(?:\.\d+)?%(小数点以下にも対応)といったパターンに変更すると、より実用的な抽出が可能になります。
-
Pythonで文字列から数値を抽出する方法を徹底解説
```html Pythonでは、文字列に含まれる数値を抽出する方法がいくつかあります。ここでは、代表的な手法である isdigit() メソッドを使った例を中心に、初心者にもわかりやすく解説します。 文字列から1桁ずつ数字を抽出する 文字列内の各文字を順番に調べ、数字だけを出力する最もシンプルな方法です。isdigit() メソッドは、対象の文字が数字であれば True を返します。 >>> str1 = a34e 345 bcd 5he 78 xyz >>> for s in str1: ... if s.isdigit(): ...
-
Pythonで文字列から数字を抽出する方法【isdigitと正規表現の使い分け】
正の整数だけを抽出するシンプルな方法文字列に含まれる正の整数だけを取り出したい場合は、split()で空白ごとに文字列を分割し、isdigit()で各要素が数字のみで構成されているかを判定する方法が手軽です。>>> s = h3110 23 cat 444.4 rabbit 11 2 dog >>> [int(x) for x in s.split() if x.isdigit()] [23, 11, 2]この方法では、すべてが数字で構成された要素だけが整数に変換されてリストに追加されます。そのため「h3110」のように文字と数字が混ざった語句や、「444.