gpt4 book ai didi

python - 如何在Python中使用正则表达式从字符串中删除两个 "underline-numeric"子字符串?

转载 作者:行者123 更新时间:2023-12-01 09:18:12 25 4
gpt4 key购买 nike

我有一个类似于 geo_drill_0_10m_therm_15_15 的字符串列表,我需要删除最后两个“取消划线数字”子字符串(_15 和 _15)。

但是,在我的列表中,数字具有不同长度的数字(例如 _1_14),有时只有一个子字符串(例如 _7),有时没有。

到目前为止,我已经尝试过

re.sub(r'(\d+\w?)(\d+)$', '', 'geo_drill_0_10m_therm_15_15')正如预期的返回geo_drill_0_10m_therm_

re.sub(r'(\d+\w?)(\d+\w?)$', '', 'geo_drill_0_10m_therm_15_15')我期望完成这项工作,但它返回相同的

geo_drill_0_10m_therm_

任何想法如何使用正则表达式或什至另一个没有正则表达式的解决方案摆脱最后一个 "_" 。提前致谢。

最佳答案

删除任意数量的_以及您可以使用的字符串末尾的 1+ 位数字

re.sub(r'(?:_\d+)+$', '', s)

请参阅regex demo

仅删除 1 或 2 次出现的 _<digits>最后,替换 +带有限制量词

r'(?:_\d+){1,2}$'

根据需要调整最小值和最大值。

关于python - 如何在Python中使用正则表达式从字符串中删除两个 "underline-numeric"子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041085/

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