ホームページ > バックエンド開発 > Python チュートリアル > Python 正規表現を使用して数値と金額を処理する方法

Python 正規表現を使用して数値と金額を処理する方法

WBOY
リリース: 2023-06-23 08:21:12
オリジナル
2393 人が閲覧しました

Python正则表达式是一种强大的工具,可帮助我们在文本数据中进行精细、高效的匹配和搜索。在数字和金额的处理中,正则表达式也极为有用,可以准确地找到并提取其中的数字和金额信息。本文将介绍如何使用Python正则表达式处理数字和金额,帮助读者更好地应对实际的数据处理任务。

一、处理数字

1.匹配整数和浮点数

正则表达式中,要匹配整数和浮点数,可以使用d+进行匹配,其中d表示数字的字符集。具体来说,d表示单个数字字符,+表示该字符可出现一次或多次。 在匹配浮点数时,还需要加入小数点和小数部分的匹配。代码如下:

import re

text = "Apple price is $16.5, and orange price is $20"
re.findall(r'd+.d+|d+', text)
#输出 ['16.5', '20']
ログイン後にコピー

2.匹配科学计数法

有时候,处理的数字可能是科学计数法的形式,例如1.16e+03。那么该如何进行匹配呢?这里可以使用d+.?d*(eE?d+)?的正则表达式进行匹配,其中[]表示可选的字符。具体来说,该正则表达式表示匹配以小数点开头的数字,接着是一个可选的科学计数法,e或E后面的正负号以及后面的数字。代码如下:

text = 'The universe is 13.8 billion years old'
re.findall(r'd+.?d*([eE][-+]?d+)?', text)
#输出 ['13.8']
ログイン後にコピー

二、处理金额

1.匹配货币符号

在匹配金额时,首先需要匹配货币符号。不同的货币符号有不同的匹配规则,例如美元符号$可以用[$]进行匹配,欧元符号€可以用[€]进行匹配。代码如下:

text = "The price is $16.5"
re.findall(r'[$€]', text)
#输出 ['$']
ログイン後にコピー

2.匹配整数和浮点数金额

在匹配整数和浮点数金额时,可以将正则表达式组合起来。例如,匹配带有美元符号的整数和浮点数金额可以用[$]d+.d+|[$]d+进行匹配。 其中,d+表示小数点前的数字,.表示小数点本身,d+表示小数点后的数字。代码如下:

text = "The price is $16.5"
re.findall(r'[$]d+.d+|[$]d+', text)
#输出 ['$16.5']
ログイン後にコピー

3.匹配货币格式的金额

在匹配货币格式的金额时,需要匹配货币符号、货币数值和千分位分隔符。代码如下:

text = "The prices are $16,500 and €20,000"
re.findall(r'[$€](d{1,3}(,d{3})*(.d+)?)', text)
#输出 ['16,500', '20,000']
ログイン後にコピー

在上述正则表达式中,(d{1,3}(,d{3})*(.d+)?)表示匹配千分位分隔符格式的数值,即第一位可以是1到3个数字,后面可以有任意多个千分位分隔符和数字。(.d+)?表示匹配可能存在的小数部分,即小数点加上一到多个数字。

三、总结

本文介绍了如何使用Python正则表达式处理数字和金额。对于数字的处理,主要是匹配整数、浮点数和科学计数法;对于金额的处理,主要是匹配货币符号、整数和浮点数金额以及货币格式的金额。掌握这些技巧,可以帮助我们更好地应对实际的数据处理任务。当然,正则表达式的语法还有很多,读者可以根据实际需求进行探索和学习。

以上がPython 正規表現を使用して数値と金額を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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