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

Python 如何在两个字符串之间获取中间内容?,python,regex,Python,Regex,我需要在两个字符串分隔符之间取一个中间内容,事实上,我在整个字符串中有三个打印分隔符,我需要取第二个分隔符,并使其中间内容朝向最后一个分隔符 例如: '__SEPARATOR__'\r\nVMlinux2@ubuntu:~$ ifconfig && echo '__SEPARATOR__'\r\nens33: flags=4163<UP, 'BROADCAST', 'RUNNING', 'MULTICAST> mtu 1500inet 10.10.10.11 ne

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

例如:

'__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__
我的职能:

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
我做错了什么

问候。

为什么不呢

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

您需要使用
DOTALL
标志编译
REGEX
,因为您的文本中有
\n

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

默认情况下
不匹配
\n
,您可以简化正则表达式
(.*)
,但我认为您不需要,因为使用
拆分
提供的答案更简单。

请显示您的python代码。为什么要使用正则表达式?这就像用链锯切冰棒一样<代码>拆分()
可能就是您在这里想要的
yourString.split('__SEPARATOR__')[2].lstrip("'")
  regex = re.compile(r"'__SEPARATOR__'.*?'__SEPARATOR__'(.*?)__SEPARATOR__", re.DOTALL)