gpt4 book ai didi

python-3.x - 拆分字符串的内容

转载 作者:行者123 更新时间:2023-12-04 08:28:38 26 4
gpt4 key购买 nike

我有以下字符串

s = "ΔG'° = (-19.9 +/- 0.4) kilojoule / mole"
我想生成一个像下面这样的字典
d = {"mean"= -19.9, "sd": 0.4, "units": "kilojoule / mole"}
如果字符串是 -19.9 +/- 0.4我可以做 s.split("+/-") .但在给定的格式中,我有
根据每个分隔符拆分几次。
有没有简单的方法来做到这一点?

最佳答案

您可以使用

r'=[^\d-]*(?P<mean>-?\d*\.?\d+)\s*\+/-\s*(?P<sd>\d*\.?\d+)\W+(?P<units>.+)'
regex demo .细节:
  • = - 一个 =签到
  • [^\d-]* - 除数字和 - 之外的零个或多个字符
  • (?P<mean>-?\d*\.?\d+) - 组“均值”:可选 - ,零个或多个数字,可选 .然后是一位或多位数字
  • \s*\+/-\s* - 一个 +/-用零个或多个空格包围的子字符串
  • (?P<sd>\d*\.?\d+) - 组“sd”:零个或多个数字,可选 .然后是一位或多位数字
  • \W+ - 一个或多个非单词字符
  • (?P<units>.+) - 组“单位”:字符串的其余部分。

  • Python demo :
    import re
    rx = r'=[^\d-]*(?P<mean>-?\d*\.?\d+)\s*\+/-\s*(?P<sd>\d*\.?\d+)\W+(?P<units>.+)'
    text = r"ΔG'° = (-19.9 +/- 0.4) kilojoule / mole"
    m = re.search(rx, text)
    if m:
    print(m.groupdict())
    # => {'mean': '-19.9', 'sd': '0.4', 'units': 'kilojoule / mole'}

    关于python-3.x - 拆分字符串的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65129656/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com