gpt4 book ai didi

python - 删除两个特定字符之间的文本(多次出现)

转载 作者:行者123 更新时间:2023-12-05 03:16:40 25 4
gpt4 key购买 nike

我想去掉字符“-”和字符串“\n”里面的文字(还有人物)

例如,string = "hi.-hello\n good morning"我想要得到的结果是 string = "hi. good morning"

对于 string = "hi.-hello\n good morning -axq\n"我想要得到的结果是 string = "hi. good morning axq"

我找到了这些示例(作为如何调整我想要的示例的引用)

import re
str = "hi.)hello| good morning"
re.sub(r"(?<=\)).*?(?=\|)", "", str)
>>>'hi.)| good morning'

还有这个

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("([\(\[]).*?([\)\]])", "\g<1>\g<2>", x)
'This is a sentence. () []'

还有这个

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence. '

但我仍然无法获得适合我的案例的语法。我也想学习它的一般语法(即自定义)。

最佳答案

当你想删除一对之间的文本时,这会起作用,例如(-,\n)。当问题是删除几个不同对之间的文本时,我必须更好地研究函数的实际工作原理。

import re
str = "hi.-hello\n good morning and a good-long \n day"
re.sub(r"-.*\n", "", str)
>>> hi. good morning and a good day

编辑:我发现了几个符号对的技巧:

str = "hi.-hello\n good morning and a good-long \n day (delete this), bye"
strt =re.sub(r"[\(\-].*?[\n\)]", "", str)
print(strt)
>>> hi. good morning and a good day , bye

对于几对,将全部放入括号中 [<remove from>].*?[<remove to>] .然后,您要删除的每个符号都具有 \<symbol to remove start/end> 的形式.在这个例子中 \- , \n (或 \(\n) )。

关于python - 删除两个特定字符之间的文本(多次出现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74572979/

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