如何在python中使用re模块匹配模式之间的行
我有一个字符串(包含多行),其中包含以下内容:如何在python中使用re模块匹配模式之间的行,python,regex,Python,Regex,我有一个字符串(包含多行),其中包含以下内容: "Name=My name Address=...... \##### To extract from here #### line 1 line 2 line 3 \##### To extract till here #### close" \##### To extract from here #### line 1 line 2 line 3 如何提取“#####之间的行以提取*”字符串,包括模式 输出应如下所示: "Name=My n
"Name=My name
Address=......
\##### To extract from here ####
line 1
line 2
line 3
\##### To extract till here ####
close"
\##### To extract from here ####
line 1
line 2
line 3
如何提取“#####之间的行以提取*”
字符串,包括模式
输出应如下所示:
"Name=My name
Address=......
\##### To extract from here ####
line 1
line 2
line 3
\##### To extract till here ####
close"
\##### To extract from here ####
line 1
line 2
line 3
你不需要正则表达式,一个简单的表达式就足够了 只需找到两个字符串,并输出它们之间的输入部分(通过切片字符串),注意避免输出第一个字符串(即记录其长度)
或者,您可以使用两个调用。您不需要正则表达式,一个简单的调用就足够了 只需找到两个字符串,并输出它们之间的输入部分(通过切片字符串),注意避免输出第一个字符串(即记录其长度)
或者,您可以使用两个调用来调用。Ofir是正确的。下面是一个相应的示例:
>>> s = """... your example string ..."""
>>> marker1 = "\##### To extract from here ####"
>>> marker2 = "\##### To extract till here ####"
>>> a = s.find(marker1)
>>> b = s.find(marker2, a + len(marker1))
>>> print s[a:b]
\##### To extract from here ####
line 1
line 2
line 3
奥菲尔是对的。下面是一个相应的示例:
>>> s = """... your example string ..."""
>>> marker1 = "\##### To extract from here ####"
>>> marker2 = "\##### To extract till here ####"
>>> a = s.find(marker1)
>>> b = s.find(marker2, a + len(marker1))
>>> print s[a:b]
\##### To extract from here ####
line 1
line 2
line 3
或
或
如果在
行之前有一行“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。你需要写b=b=b=C.b=C.b=C.b=C.b=C.b=C.C.C.C.b.b=C.b=C.b=C.C.a+32)
+1因为这也是一个很好的解决方案,因为它也是一个很好的解决方案,因为,find()是一个非常快的函数,而且regex是绝对不总是必要的,如果有一条线的话,如果有一条线的话,如果有一条线<<代码<<代码<<代码<<代码><代码>的话,<代码>的话,那么所有绝对不总是绝对不总是绝对必要的必要的话,而不是绝对总是绝对总是必要的。如果有一个必要的话,如果有一条线的话,如果有一条线的话,<代码<<代码<<<代码><代码><代码><代码>的话,<代码>的话,<代码>代码>的话,##########“
,这个代码不会给出正确的东西。所以你需要写b=ch.find(“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。但没有任何反斜杠的模式。@Sandhya如果你写的是你写的是Sandhya如果你写的是Sandhya如果你写的是你写的是Sandhya如果你写的是Sandhya如果你写的是没有任何反斜杠的模式。@sandhhya如果你写的是Sandhya.Sandhya如果你写的是r''35基基基基本切切切切切切切切切切切亚(r)从从这里提取,从从这里提取从这里提取从这里提取从这里提取,从这里提取从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里,从这里提取,从这里提取,从这里,从这里提取,从这里提取,从这里提取,从这里,从这里,从这里提取,从这里,从这里提取,从支付支付支付支付支付支付支付支付支付支付支付支付,从#####
。这仍然很好。相反,如果你写。(?=############“
”,反斜杠字符将被捕获到“.*”
部分。据我所知,这不是您想要的。+1此解决方案可能比使用str.find()慢一点
,然而,实际上,这仅在搜索字符串非常大或提取多次时才相关。正则表达式的优点是它们在检测提取标记时更灵活。非常感谢这项工作。但是模式中没有任何反斜杠。@Sandhya如果您编写重新编译从这里提取。从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取。从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,从这里提取,而不是在<代码>上,而不是在<代码>上,而不是在<代码>上,而不是在<代码>上,比赛将从<代码>开始,从<代码>开始,从<代码>开始,从<代码>开始,从<代码>开始,从<代码>开始,从>开始,从>开始,从>开始,从>开始,从从>开始,从>开始,从>开始,从>开始,从>开始,从>开始,从>开始,从从>开始,从>开始,从>开始,从从>开始,从>开始,从>开始,从>开始,从,从>开始,从,从>开始,从,从从>从它仍然很好。相反,如果你写”(?=#########提取到这里)“
”,反斜杠字符将被捕获到“.*”
部分。据我所知,这不是您想要的。+1此解决方案可能比使用str.find()慢一点
,然而,在实践中,这仅在搜索字符串非常大或提取多次时才相关。正则表达式的优点是它们在检测提取标记时更灵活。