2024-04-25 08:16:22 发布
网友
所以,我有一堆很长的字符串,所以我想一个有效的方法来做这个操作 假设我有一根绳子
"< stuff to remove> get this stuff <stuff to remove>
所以,我试着提取“得到这个东西”
所以我在写这样的东西。在
实现这一目标的更好方法是什么
我不确定你的搜索行动是否是问题的一部分。如果您只是说您有一个开始索引和一个结束索引,并且希望从字符串中删除这些字符,则不需要为此使用特殊函数。Python允许对字符串中的字符使用数字索引。在
> x="abcdefg" > x[1:3] 'bc'
您要执行的操作将类似于x[:strt_idx] + x[end_idx:]。(如果省略第一个参数,则表示“从头开始”;如果省略第二个参数,则表示“继续进行到底”。)
x[:strt_idx] + x[end_idx:]
使用正则表达式:
>>> s = "< stuff to remove> get this stuff <stuff to remove>" >>> import re >>> re.sub(r'<[^<>]*>', '', s) ' get this stuff '
表达式<[^<>]*>匹配以<开头、以>结尾、中间既没有<或{}的字符串。然后,sub命令将匹配项替换为空字符串,从而将其删除。在
<[^<>]*>
<
>
sub
然后,如果需要,可以对结果调用.strip(),以删除前导空格和尾随空格。在
.strip()
当然,当您有嵌套标记时,这将失败,但它对您的示例是有效的。在
正则表达式是实现这一点的一种简单方法(尽管不一定如jedwards的回答所示的那样更快):
import re s = '< stuff to remove> get this stuff <stuff to remove>' s = re.sub(r'<[^>]*>', '', s)
在此之后,s将是字符串' get this stuff '。在
s
' get this stuff '
我不确定你的搜索行动是否是问题的一部分。如果您只是说您有一个开始索引和一个结束索引,并且希望从字符串中删除这些字符,则不需要为此使用特殊函数。Python允许对字符串中的字符使用数字索引。在
您要执行的操作将类似于
x[:strt_idx] + x[end_idx:]
。(如果省略第一个参数,则表示“从头开始”;如果省略第二个参数,则表示“继续进行到底”。)使用正则表达式:
表达式}的字符串。然后,
<[^<>]*>
匹配以<
开头、以>
结尾、中间既没有<
或{sub
命令将匹配项替换为空字符串,从而将其删除。在然后,如果需要,可以对结果调用
.strip()
,以删除前导空格和尾随空格。在当然,当您有嵌套标记时,这将失败,但它对您的示例是有效的。在
正则表达式是实现这一点的一种简单方法(尽管不一定如jedwards的回答所示的那样更快):
在此之后,
s
将是字符串' get this stuff '
。在相关问题 更多 >
编程相关推荐