如何用Python re模块提取字符串末尾的数字百分比(如0.12%)
提取字符串末尾百分比的正则解决方案
原正则 r'(\d.*)' 的问题在于,它会从字符串中第一个出现的数字开始匹配,一直到字符串结尾。对于开头包含20%的text1,它会把从20%到末尾的所有内容都匹配出来,而不是你要的末尾0.12%。
要精准提取末尾的百分比,需要用**结尾锚定符$**来限定匹配范围,同时精准匹配百分比格式:
推荐正则表达式:r'(\d+\.?\d*%)$'
各部分含义:
\d+:匹配1个或多个整数部分数字\.?:匹配可选的小数点(兼容整数百分比如5%和小数百分比如0.12%)\d*:匹配可选的小数部分数字%:匹配百分号$:锚定字符串结尾,确保只匹配位于末尾的百分比
代码示例
import re text1 = "20% 示例文本 0.12%" text2 = "任意内容 0.12%" # 定义匹配末尾百分比的正则 pattern = r'(\d+\.?\d*%)$' # 提取结果 result1 = re.search(pattern, text1).group(1) result2 = re.search(pattern, text2).group(1) print(result1) # 输出: 0.12% print(result2) # 输出: 0.12%
内容的提问来源于stack exchange,提问作者boyenec
相关产品推荐
相关产品推荐

