如何比较包含换行的字符串?
我正在开发一个脚本,用来比较运行时生成的字符串和用户输入的字符串。不过,由于用户是通过文本框输入代码的,所以我在用户输入的字符串中得到了一个奇怪的字符“^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
这种换行符。