You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从右侧开始在算术运算符处仅拆分一次字符串?

解决方法

别用split了,直接用正则捕获组拆分更合适——毕竟split会把你需要保留的运算符直接丢掉。

用正则精准匹配最后一个运算符与末尾数字的分界,直接提取两部分内容:

import re

equation_text = "123+456-789"
# 正则模式:捕获到最后一个运算符为止的所有内容,再捕获末尾的纯数字
match_result = re.search(r'(.*[+\-/*%])(\d+)$', equation_text)

if match_result:
    prefix_part = match_result.group(1)  # 得到 "123+456-"
    suffix_num = match_result.group(2)   # 得到 "789"
    print(prefix_part)
    print(suffix_num)

逻辑说明

  • (.*[+\-/*%]):匹配任意内容直到最后一个算术运算符(+、-、*、/、%),这部分就是你要的前半段
  • (\d+)$:匹配字符串末尾的连续数字,确保只提取最后一段纯数字
  • $ 锚定字符串结尾,不管前面有多少运算符,都不会影响最后一段数字的提取

如果担心输入字符串末尾不是数字(比如格式不合法),if match_result的判断可以避免报错。

内容的提问来源于stack exchange,提问作者Canofeggs 5410

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:40:13