gpt4 book ai didi

Python/Regex 部分字符串替换

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

经过编辑以阐明我尝试过的内容以及我的目标是什么。

我的目标是获取一个列表,对于列表中的每个元素,将紧跟在竖线后面的任何字符(如果存在这样的字符)替换为“X”。

例如:

[A|1,B|C,D|9] 会变成 [A|X,B|X,D|X]

从网上看,我认为这将是某种正则表达式,但我不确定如何具体获取后面的一个字符。

我试过了

re.sub('|*?', "X", listname)

但甚至在开始之前就出现了“悬挂元字符”错误。我想说:“将 | 后面的任何单个字符更改为 X。

我也试过:

re.sub('\|(.)', "X", listname)

但是得到 TypeError: expected string or buffer

关于我正在寻找什么来澄清评论的更多背景......

在我的特定代码中总会跟着一些东西。我只关心那个“东西”的第一个字符。所以 [A|124,B|s] 需要产生 [A|X24,B|X]

最佳答案

I want to say: "Take any single character following a | and change that character to an X.

您可以使用列表理解和以下正则表达式来执行此操作。

>>> import re
>>> lst = ['A|1', 'B|C', 'D|9', 'E|124', 'F|s']
>>> [re.sub(r'(?<=\|).', 'X', x) for x in lst]
['A|X', 'B|X', 'D|X', 'E|X24', 'F|X']

(?<= ... ) 是一个零宽度断言,它不会“消耗”字符串中的任何字符,而只会断言紧接在字符串中当前位置之前的是 |。 .

关于Python/Regex 部分字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551097/

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