python - 用 ply 转义正则表达式中的空格?

标签 python regex escaping whitespace ply

我需要转义正则表达式中的单个空格吗?我知道它在Python中可以通过以下任一方式工作:re.compile(r'\s')re.compile(r' ')re .compile(r'\')。所以看来你可以使用Python re模块来逃避它,也可以不逃避它。

但是当我尝试通过 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

ply.lex 是否对规则的 doc 字符串进行任何特殊处理?

最佳答案

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

此外,您需要转义哈希值 (#),否则以下部分将被解释为注释。

关于python - 用 ply 转义正则表达式中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10311827/

相关文章:

python - 强制 repr() 使用单引号

python - pandas python 中的 SQL 查询

python - Spark动态帧显示方法没有产生任何结果

javascript - 正则表达式在第 n 次出现的字符处剪切字符串并返回字符串的第一部分

sql - 如何转义字段名称方括号内的方括号

node.js - 如何将单个反斜杠放入 ES6 模板文字的输出中?

python - 从 2 列表制作字典

python - 如何从 Python 脚本下载 outlook 附件?

ruby - 正则表达式匹配 Ruby 中已知字符串后的 1-3 位数

python - Python中的负模式匹配正则表达式