你可以使用以下正则表达式来实现你的需求:

(\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() 方法来获取所有匹配项。

正则表达式提取数字:识别 '8万' 为 '8' 和 '1,000万' 为 '1,000'

原文地址: https://www.cveoy.top/t/topic/eCkX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录