想象一下在 HTML textarea
中输入以下文本:
123456
7
如果通过 javascript 计算此文本的长度,即 string.length
,结果为 10
。
现在,如果该输入的长度是在 python 中测量的,即通过 len(string)
,则它是 13
。
人眼看起来不是13
,但如果在 python 中运行 print repr(string)
,我们会得到 123456\r\n\r\n\r\n7
。那是 13
个字符,而不是 10
。作为引用,本次测试是在 Ubuntu 操作系统中进行的。
有没有办法让 python 通过模仿 javascript 的 string.length's
结果的机制来报告字符串长度? IE。简单来说,如何在 Python 中获取 10
?
我知道我可以手动迭代并将 \r\n
折叠成单个字符,但我想知道是否有更强大的 - 甚至是内置的 - 方法来做到这一点?无论如何,一个说明性的例子会很棒!
最佳答案
您可以使用比迭代更优雅的正则表达式。将字符 \n
和 \r
替换为 ''
即可。
使用python的re模块
import re
x = '123456\r\n\r\n\r\n7'
y = re.sub(r'\r\n','\n',x)
print(len(y)) #Answer will be 10
如需进一步引用,请查看 python docs
关于Javascript string.length 不等于 Python len(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64750991/