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

如何在两个字符串之间取中间内容?

如何在两个字符串之间取中间内容?

白板的微信 2022-06-22 17:09:42
我需要在两个字符串分隔符之间取一个中间内容,事实是我在整个字符串中有三个打印的分隔符,我需要取第二个分隔符并将其中间内容指向最后一个分隔符。这是一个例子:'__SEPARATOR__'\r\nVMlinux2@ubuntu:~$ ifconfig && echo '__SEPARATOR__'\r\nens33: flags=4163<UP, 'BROADCAST', 'RUNNING', 'MULTICAST>  mtu 1500inet 10.10.10.11  netmask 255.255.240.0  broadcast 10.10.10.255 __SEPARATOR__正确的输出必须是:\r\nens33: flags=4163<UP, 'BROADCAST', 'RUNNING', 'MULTICAST>  mtu 1500inet 10.10.10.11  netmask 255.255.240.0  broadcast 10.10.10.255 我尝试使用此正则表达式但不起作用:'__SEPARATOR__'.*?'__SEPARATOR__'((.|\r|\n|\r\n|\n\r)*)__SEPARATOR__我的功能:def get_cmd_output(output):  regex = r"'__SEPARATOR__'.*?'__SEPARATOR__'((.|\r|\n|\r\n|\n\r)*)__SEPARATOR__"  output = re.search(regex, output).group(1)  return output我做错了什么?
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

为什么不

yourString.split('__SEPARATOR__')[2].lstrip("'")


查看完整回答
反对 回复 2022-06-22
?
aluckdog

TA贡献1847条经验 获得超7个赞

您需要编译您的REGEXwithDOTALL标志,因为\n在您的文本中:

  regex = re.compile(r"'__SEPARATOR__'.*?'__SEPARATOR__'(.*?)__SEPARATOR__", re.DOTALL)

默认情况下.不匹配\n,您可以简化 REGEX (.*?),但我认为您不需要,因为使用提供的答案split更容易。


查看完整回答
反对 回复 2022-06-22
  • 2 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号