Python 使用ply在正则表达式中转义空白?

Python 使用ply在正则表达式中转义空白?,python,regex,escaping,whitespace,ply,Python,Regex,Escaping,Whitespace,Ply,我需要在正则表达式中转义一个空格吗?我知道它在Python中有以下两种工作方式:re.compile(r'\s')、re.compile(r')和re.compile(r'\')。因此,似乎可以使用pythonre模块对其进行转义,也可以不转义 但当我试图通过ply.lex为单个空格定义规则时,情况似乎有点不同 ########################## # r'\s' works with ply.lex def t_WHITESPACE(token): r'\s' pass

我需要在正则表达式中转义一个空格吗?我知道它在Python中有以下两种工作方式:
re.compile(r'\s')
re.compile(r')
re.compile(r'\')
。因此,似乎可以使用pythonre模块对其进行转义,也可以不转义

但当我试图通过ply.lex为单个空格定义规则时,情况似乎有点不同

########################## # r'\s' works with ply.lex def t_WHITESPACE(token): r'\s' pass ########################## # r'\ ' also works def t_WHITESPACE(token): r'\ ' pass ########################## # r' ' DOES NOT work # A SyntaxError was raised with the message "Regular expression for rule 't_WHITESPACE' matches empty string" def t_WHITESPACE(token): r' ' pass ########################## #r'\s'与ply.lex一起工作 def t_空格(标记): r'\s' 通过 ########################## #r'\'也起作用 def t_空格(标记): r'\' 通过 ########################## #r“”不起作用 #引发SyntaxError,消息为“规则't_WHITESPACE'的正则表达式匹配空字符串” def t_空格(标记): r“ 通过
ply.lex是否对规则的doc字符串进行任何特殊处理?

我不知道ply,但这看起来像是使用选项编译正则表达式,这意味着您确实需要转义文本空白或使用
\s


另外,您需要转义散列(
#
),否则以下部分将被解释为注释。

是的,我发现在ply源代码中使用了re.VERBOSE!非常感谢你!