python - 如何检测字符串中的转义序列

标签 python parsing string escaping

给定一个名为 line 的字符串,其原始版本具有此值:

\rRAWSTRING

如何检测是否有转义符\r?我试过的是:

if repr(line).startswith('\r'):
    blah...

但它没有捕捉到它。我也试过find,比如:

if repr(line).find('\r') != -1:
    blah

也不行。我错过了什么?

谢谢!

编辑:

感谢您对术语的所有回复和更正,对于造成的混淆,我们深表歉意。

好的,如果我这样做

print repr(line)

然后它打印的是:

'\rSET ENABLE ACK\n'

(包括单引号)。我已经尝试了所有的建议,包括:

line.startswith(r'\r')
line.startswith('\\r') 

每个都返回 False。也尝试过:

line.find(r'\r')
line.find('\\r')

每个返回-1

最佳答案

如果:

print repr(line)

返回:

'\rSET ENABLE ACK\n'

然后:

line.find('\r')
line.startswith('\r')
'\r' in line

是你要找的。示例:

>>> line = '\rSET ENABLE ACK\n'
>>> print repr(line)
'\rSET ENABLE ACK\n'
>>> line.find('\r')
0
>>> line.startswith('\r')
True
>>> '\r' in line
True

repr() 返回一个显示字符串。它实际上包含您在打印行时看到的引号和反斜杠:

>>> print line
SET ENABLE ACK

>>> print repr(line)
'\rSET ENABLE ACK\n'
>>> print len(line)
16
>>> print len(repr(line))
20

关于python - 如何检测字符串中的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3030789/

相关文章:

python - Networkx 和 graphviz 布局将节点放置在同一位置

python - pygame.camera 可以使用多少个摄像头?

javascript - 你如何在 Jison 中匹配零个或多个标记?

c - C 中字符串的一些问题

java - 通过分割或使用正则表达式将 ID 与另一个字符串进行匹配

python - 如何为 Microsoft Azure 声音赋予不同的风格?

javascript - 具有富文本就地编辑功能的 Flask 表单

java - 如何获取规则中的所有逻辑运算符标记

python - 解析python中的数学表达式并求解以找到答案

java - 如何有效地小写集合的每个元素?