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

如何编写Python正则表达式匹配含d/dR分式的特定格式字符串

解决方案

你正则里的xx占位部分可以替换为[^|]+?实现匹配,原理是两个|为固定分隔符,中间的运算式不会出现|字符,用这个规则匹配不会越界。
如果不需要单独提取中间的运算式,直接用下方正则即可:

r"<\s*(\d+)\s*\|\s*[^|]+?\s*\|\s*(\d+)\s*>"

如果需要单独捕获d/dR这类中间内容,给匹配部分加个分组括号就行:

r"<\s*(\d+)\s*\|\s*([^|]+?)\s*\|\s*(\d+)\s*>"

匹配逻辑说明

  • [^|]:匹配除竖线|以外的任意单个字符
  • +?:非贪婪匹配,避免把中间运算式后面的空格也包含到匹配结果里,和前后的\s*配合可以精准拿到运算式本身

测试示例

import re

target_text = "<   0 | d/dR |    1>"
pattern = r"<\s*(\d+)\s*\|\s*([^|]+?)\s*\|\s*(\d+)\s*>"
result = re.match(pattern, target_text)
if result:
    print(result.group(1))  # 输出 0
    print(result.group(2))  # 输出 d/dR
    print(result.group(3))  # 输出 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:48:04