我经常使用sagetex,它是用 python 编写的。
包中的一个脚本定义了一个像这样的变量:
ignore = r"^( _st_.goboom|print 'SageT| ?_st_.current_tex_line)"
然后脚本使用re.find
如下:
re.search(ignore, line)
最近,为了准备切换到python 3,将ignore
变量更改为
ignore = r"^( _st_.goboom|print('SageT| ?_st_.current_tex_line))"
出于某种原因,此更改导致我的某些文档出现问题。
ignore
我的问题是:如果要在中使用变量的这两个定义之间有什么区别re.search
吗?
显然,如果我可以发布为什么这会给我带来问题,那将会很有用,但是脚本有点长,而且我使用脚本的项目很长。
简而言之:脚本使用 的第一个定义返回正确的结果,ignore
脚本总是返回False
的第二个定义ignore
。
我希望这两个定义ignore
导致不同的行为有一个明显的原因。
更新的正则表达式缺少先前正则表达式所具有的空间。
我认为想要的只是
至于解释......通常,正则表达式中的空格是文字字符。
现在,我承认,这可能是变化本身。你从说你会忽略
忽略
(注意:正则表达式中的所有 '.' 字符也匹配任何字符,但我不希望有 258 * 6 行左右的行来准确解释被忽略的模式。)