テキストと数値の両方を含むテキスト データを扱う場合、次のようになります。文字列から数値を抽出するために必要です。 Python でこのタスクを実行するための 2 つの一般的な方法は、正規表現と isdigital() メソッドです。
正規表現 (regex) は、文字列内のパターンを照合する強力な方法を提供します。数値を抽出するには、1 つ以上の数字と一致する d パターンを使用できます。次の例を考えてみましょう。
import re line = "hello 12 hi 89" numbers = re.findall(r'\d+', line) print(numbers) # Output: [12, 89]
この正規表現は、一連の数字「12」と「89」に一致し、それらをリストとして返します。単語の境界 (スペース、ピリオド、カンマなど) で区切られた数値のみを照合するには、b パターンを使用できます。
numbers = re.findall(r'\b\d+\b', line) print(numbers) # Output: [12, 89]
isdigital () メソッドは、文字列から数値を抽出する別の方法を提供します。このメソッドは、文字が数字の場合は True を返し、それ以外の場合は False を返します。これを使用するには、文字列を反復処理して各文字をチェックします。
line = "hello 12 hi 89" numbers = [] for char in line: if char.isdigit(): numbers.append(int(char)) print(numbers) # Output: [12, 89]
この例では、メソッドは文字列内の各文字を反復処理し、isdigital() を使用してそれが数字であるかどうかを確認します。存在する場合、それを数値リストに追加します。
一般に、正規表現を使用する方が効率的です。 isdigital() メソッドを使用するよりも文字列から数値を抽出する場合に便利です。正規表現は複雑なパターンにすばやく一致しますが、isdigital() では文字列全体を反復処理する必要があります。
負の整数も抽出する必要がある場合、正規表現のアプローチではより簡単な解決策。負の数字と一致させるには、単に r'-d ' を使用します。ただし、isdigital() を使用すると、負の符号を処理するためにより複雑なロジックが必要になります。
以上がPython 文字列数値抽出: Regex と isdigital() - どちらの方法が最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。