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)