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

我需要在两个字符串分隔符之间取一个中间内容,事实是我在整个字符串中有三个打印的分隔符,我需要取第二个分隔符并将其中间内容指向最后一个分隔符。


这是一个例子:


'__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

我做错了什么?


白板的微信
浏览 207回答 2
2回答

慕尼黑的夜晚无繁华

为什么不yourString.split('__SEPARATOR__')[2].lstrip("'")

aluckdog

您需要编译您的REGEXwithDOTALL标志,因为\n在您的文本中:&nbsp;&nbsp;regex&nbsp;=&nbsp;re.compile(r"'__SEPARATOR__'.*?'__SEPARATOR__'(.*?)__SEPARATOR__",&nbsp;re.DOTALL)默认情况下.不匹配\n,您可以简化 REGEX&nbsp;(.*?),但我认为您不需要,因为使用提供的答案split更容易。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python