如何比较包含换行的字符串?

0 投票
2 回答
7174 浏览
提问于 2025-04-16 05:26

我正在开发一个脚本,用来比较运行时生成的字符串和用户输入的字符串。不过,由于用户是通过文本框输入代码的,所以我在用户输入的字符串中得到了一个奇怪的字符“^M”。

举个例子,如果我把这些字符串打印到文件里,结果是这样的:

User Input:
1^M 
2^M
3

Output of script:
1
2
3

显然,当我尝试比较这两个字符串时,结果是错误的。那么,有什么有效的方法来解决这个问题呢?顺便提一下,用户输入的所有行并不是以“^M”结尾的。用户输入的最后一行没有“^M”,而代码的输出是以“\n”结尾的。

2 个回答

1

mystring.rstrip('\r') 这个代码会返回一个新的字符串,去掉了字符串末尾的任何 ^M 字符。

10

你应该使用 str.splitlines() 来分割来自文本框的内容,而不是你现在使用的其他方法。这个方法可以正确处理 \r\n 这种换行符。

撰写回答