ホームページ > バックエンド開発 > Python チュートリアル > Python 文字列数値抽出: Regex と isdigital() - どちらの方法が最適ですか?

Python 文字列数値抽出: Regex と isdigital() - どちらの方法が最適ですか?

Mary-Kate Olsen
リリース: 2024-12-25 10:47:39
オリジナル
533 人が閲覧しました

Python String Number Extraction: Regex vs. isdigit() - Which Method is Best?

Python で文字列から数値を抽出する方法: 正規表現と isdigital()

テキストと数値の両方を含むテキスト データを扱う場合、次のようになります。文字列から数値を抽出するために必要です。 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() メソッド アプローチ

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート