我需要一个正则表达式的筛选语法能够同时将8万识别成8以及将1000万识别成1000
你可以使用以下正则表达式来实现你的需求:
(\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/i4sa 著作权归作者所有。请勿转载和采集!