为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除一行末尾两个定界符之间的字符串?

如何删除一行末尾两个定界符之间的字符串?

30秒到达战场 2023-04-11 16:13:34
所以我想删除规则中的最后一条语句,规则结构如下:<pattern> @rule statements go here@ @multiple rule statements@ @remain all on the same line@</pattern>解析语句将始终位于 @ 字符之间,我想删除该行中的最后一条语句。我可以使用正则表达式删除 @ 字符之间的所有内容:re.sub(r'@.+?@', '', s)当每一行彼此不同时,我怎样才能只对行中的最后一条语句实现这一点?
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

(\@[^\@]+)\@?$

上面的正则表达式将搜索最后一次出现的@然后向后工作以实现最后一次出现的@string@的完全匹配,在下面的示例字符串中“@remain all on the same line@”将被匹配

@rule statements go here@ @multiple rule statements@ @remain all on the same line@


查看完整回答
反对 回复 2023-04-11
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

使用否定的先行断言,我们可以确保只删除最后一次出现的事件:

re.sub(r'@[^@]+@(?!.*@)', '', s)

(请注意,我需要更改.+?[^@]+以显式排除@,否则它会@statements@一次匹配所有。)


查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信