正则表达式提取数字:识别 '8万' 为 '8' 和 '1,000万' 为 '1,000'
你可以使用以下正则表达式来实现你的需求:
(\d+)(?:[,,](\d+))?
这个正则表达式包含两个捕获组。第一个捕获组 (\d+) 匹配一个或多个数字。第二个捕获组 (?:[,,](\d+))? 是一个可选的非捕获组,用于匹配逗号(英文逗号或中文逗号)后面的一个或多个数字。
以下是一个使用 Python 的示例代码:
import re
text = '8万'
match = re.search(r'(\d+)(?:[,,](\d+))?', text)
if match:
number1 = match.group(1)
number2 = match.group(2)
print(number1) # 输出:8
print(number2) # 输出:None
text = '1,000万'
match = re.search(r'(\d+)(?:[,,](\d+))?', text)
if match:
number1 = match.group(1)
number2 = match.group(2)
print(number1) # 输出:1
print(number2) # 输出:000
请注意,第二个捕获组 (\d+) 在匹配 '1,000万' 时会捕获 '000'。如果你希望获取 '1,000',可以使用 re.findall() 方法来获取所有匹配项。
原文地址: https://www.cveoy.top/t/topic/eCkX 著作权归作者所有。请勿转载和采集!