如何在QRegExp中正确匹配菲律宾货币?兼容带₱与不带₱的金额格式
QRegExp 多格式金额匹配正则调整方案
你原有正则为:
r"\₱[0-9]*[.]{,1}[0-9]{,2}"
该规则强制要求匹配内容必须以₱开头,因此无法命中不带比索符号的纯数字金额,会触发业务异常。
调整后可用正则
直接替换为以下规则即可兼容你列出的三类金额格式:
r"\₱?[0-9]+\.?[0-9]{0,2}"
规则改动说明
- 在₱的匹配规则后增加
?量词,将比索符号设为可选匹配项,同时支持带前缀、不带前缀的金额 - 将整数部分的
[0-9]*修改为[0-9]+,要求整数位至少有1位数字,避免匹配到空内容、仅带₱或仅带小数点的无效值 - 保留原有小数位匹配逻辑:小数点最多出现1次,小数部分最多支持2位数字,可完整覆盖以下目标格式:
100.0(1位小数纯金额)100.00(2位小数纯金额)₱100.00(带比索符号的标准金额)
严格匹配版本(可选)
如果需要过滤100.(小数点后无数字)、₱.22(无整数部分)这类残缺格式,可以使用收紧后的规则:
r"(\₱[0-9]+(\.[0-9]{1,2})?)|([0-9]+(\.[0-9]{1,2})?)"
该版本仅会命中整数部分存在、带小数点时小数位为1-2位的合法金额值,不会误匹配异常格式。
内容的提问来源于stack exchange,提问作者Jansen Lloyd Macabangun
相关产品推荐
相关产品推荐

