我有以下字符串:
hello
abcd
pqrs
123
123
123
我的目标是捕捉所有开始打招呼,直到第一次出现123。 所以预期的输出是:
hello
abcd
pqrs
123
我使用了以下内容:
output=re.findall('hello.*123?',input_string,re.DOTALL)
但输出如下:
['hello\nabcd\npqrs\n123\n123\n123']
有没有办法使用?
为123进行非贪婪的查找?或者还有其他方法可以达到预期的产量吗?
答案 0 :(得分:1)
尝试使用lookhead
。您正在寻找一组字符,然后是\n123\n
:
import re
input_string = """hello
abcd
pqrs
123
123
123"""
output_string = re.search('[\w\n]+(?=\n123\n)', input_string).group(0)
print(output_string)
#hello
#abcd
#pqrs
#123
我希望这证明有用。