【问题标题】:python regex - extract value from string [duplicate]python regex - 从字符串中提取值[重复]
【发布时间】:2017-10-17 18:50:17
【问题描述】:

我想知道如何从字符串中获取所有值并使用 reg 表达式,直到逗号从末尾开始。看下面的例子,我想将值"CA 0.810" 放入一个变量中:

prue ="VA=-0.850,0.800;CA=-0.863,0.800;SP=-0.860,0.810;MO=-0.860,0.810;SUN=MO -0.850,CA 0.810"

到目前为止,我有以下代码:

test = re.findall('([0-9]+)$',prue)
print test

但是,我只得到以下输出:

['810']

您能否告诉我如何将"CA 0.810" 放入test 变量中?

【问题讨论】:

  • 用逗号分割,得到最后一项。
  • 正则表达式有什么原因吗?为什么不只是prue.rpartition(',')[2]
  • 同意@JonClements 正则表达式应该是最后的手段。
  • 变量中是否需要 0.810?作为字符串还是整数?是不是少了一个“=”?

标签: python regex text-extraction


【解决方案1】:

您可以使用split 方法执行此操作。根据文档,它将:

返回字符串中的单词列表,使用 sep 作为分隔符字符串。

所以如果你能把你的string:

prue = "VA=-0.850,0.800;CA=-0.863,0.800;SP=-0.860,0.810;MO=-0.860,0.810;SUN=MO -0.850,CA 0.810"

你可以这样做:

prue.split(",")

这将通过commas 返回strings splitlist

['VA=-0.850', '0.800;CA=-0.863', '0.800;SP=-0.860', '0.810;MO=-0.860', '0.810;SUN=MO -0.850', 'CA 0.810']

因此,如果您只想将最后一个 item ('CA 0.8101') 转换为名为 testvariable,您可以将最后一个 elementlist 中取出 indexing-1

test = prue.split(",")[-1]

test 现在是:'CA 0.810'

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-13
    • 2023-01-07
    • 1970-01-01
    • 2014-06-24
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    相关资源
    最近更新 更多