gpt4 book ai didi

python - 在 linux 中使用 python 匹配多行

转载 作者:太空宇宙 更新时间:2023-11-04 09:48:55 26 4
gpt4 key购买 nike

我在 Linux 中使用 python regex 时遇到一个问题。目标字符串有多行如

This is a matched string_1.
This is a matched string_22.

Do not match this line.

我想做的是匹配“\n\n”之前的所有内容。我用过

deleteString = re.compile('[\s\S]+\n\n')

但它似乎在 Linux 中不起作用。

如何匹配double\n前的字符串

感谢您的回复。

最佳答案

在这种情况下你不需要正则表达式:

import re
import sys

text = sys.stdin.read()

# using str.find()
result = text[:text.find('\n\n') + 1]

# using re
result2 = re.match(r'(.*?)$^$', text, flags=re.DOTALL | re.MULTILINE).group(1)

# check that the result is the same
for r in [result, result2]:
print(repr(r))
assert result == result2

Output

'This is a matched string_1.\nThis is a matched string_22.\n'
'This is a matched string_1.\nThis is a matched string_22.\n'

如果您正在以文本模式从文件中读取输入,则 Python 会自动将特定于平台的换行符转换为“\n”。

关于python - 在 linux 中使用 python 匹配多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com