gpt4 book ai didi

python - 使用正则表达式和 python 从字符串中提取路由

转载 作者:行者123 更新时间:2023-11-28 16:42:28 27 4
gpt4 key购买 nike

我似乎找不到问题出在哪里。

我正在尝试从以下字符串中提取路由。

s = '{2010501005|XXGpvertex|18|0|35|0|{|{30100001|XXparameter_set|@@@@{{30001002|XXparameter|!prototype_path|$AB_COMPONENTS/Partitioning/Concatenate.mpc|3|2|Pf$|@{0|}}'

我在这里想要实现的是获取路径 $AB_COMPONENTS/Partitioning/Concatenate.mpc 但到目前为止我已经做到了:

re.search('prototype_path\|(.*)\|', s, re.IGNORECASE).group(1)

这给了我输出:

$AB_COMPONENTS/Partitioning/Concatenate.mpc|3|2|Pf$|@{0

我似乎不知道为什么它一直持续到最后一个管道,有人知道发生了什么吗?

重要的是要知道我不能使用管道后面的数字 3。同样重要的是我可以使用扩展名 .mp 作为分隔符。但这也无法解决。

提前致谢。

最佳答案

因为 .* 正则表达式是贪婪的

.*?

您可以在此处阅读更多信息:http://docs.python.org/2/library/re.html

发生的事情是 .* 将消耗尽可能多的输入(在你的情况下一直到最后一个管道).*? 反而会尽可能少地消耗(在你的情况下会在第一个管道停止)

另一种更快的方法是按看起来像字段分隔符的内容进行拆分,然后选择正确的行

"|".split(row)[3]

关于python - 使用正则表达式和 python 从字符串中提取路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460548/

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