Python: string.find('\n') 总是返回-1

3

我试图在一个包含几个 '\n' 的字符串上执行 string.find('\n') 操作(我正在寻找一行的结尾)。然而,这总是返回 -1,并且无法找到 '\n'。我做错了什么?

最初的回答:

您可能需要使用双引号而不是单引号来包含 '\n'。例如,使用 string.find("\n") 而不是 string.find('\n')


你要查找的字符串是什么? - Calvin Godfrey
请查看如何创建一个最小可复现的示例,然后编辑您的问题。 - Alexandre B.
1
string.find('\n') 应该能够很好地定位到下一行。你应该检查 string 的值。 - chakwok
3个回答

2

find 方法不支持正则表达式。你需要使用 re 包:

最初的回答:

import re
m = re.search('\n', string)

最初的回答:更多信息可以在Python文档中找到。

1
这不是一个正则表达式的问题——str.find应该可以很好地处理换行符。 - jirassimok

0

我猜测反斜杠可能被转义了,这意味着你的换行符实际上可能被表示为两个字符:一个反斜杠和一个 'n'。

为了测试,请尝试使用 string.find('\\n') 并检查是否仍然返回 -1。


0

好的,既然你没有提供字符串,我们假设contents是一个包含一些\n的字符串。

让我们用某个字符(比如™)替换所有的\n

_contents = contents.replace('\n', '™')

既然你现在想知道有多少行末尾的换行符,你可以使用_contents.find('™')。这将返回行数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接