Python Regexp:匹配不替换的引号
我的模板引擎翻译Python Regexp:匹配不替换的引号,python,regex,Python,Regex,我的模板引擎翻译 "some data #{substitution_expression} some other data" 进入 但如果“某些数据”或“某些其他数据”中包含双引号,则评估失败。 我必须在这些引号之前添加斜杠,但我无法找到正确的正则表达式 有什么帮助吗 更新: 以下是模板引擎的工作方式: 它获取一个模板字符串,例如 template = 'template string "quoted text" #{expression}' 它通过简单的regexp将模板字符串更改为:
"some data #{substitution_expression} some other data"
进入
但如果“某些数据”或“某些其他数据”中包含双引号,则评估失败。
我必须在这些引号之前添加斜杠,但我无法找到正确的正则表达式
有什么帮助吗
更新:
以下是模板引擎的工作方式:
template = 'template string "quoted text" #{expression}'
template = '"%s"' % re.compile(r'\#{(.*)}').match(r'" + (\1) + "', template)
# template == "template string "quoted text"" + (expression) + ""
# here is a problem with a "quoted text" - it needs \ before quotes`
return eval("lambda tpl_args: %s" % modified_template_string)
你试过re.DOTALL标志吗
re.compile(r'\#{(.*)}', re.DOTALL)
你试过re.DOTALL标志吗
re.compile(r'\#{(.*)}', re.DOTALL)
我不明白这个问题。你能用描述什么不起作用的方式来描述什么不起作用吗?您拥有的字符串是什么?您希望匹配什么?您应该进一步了解模板引擎的工作原理。如果可能的话,可能会给我们展示更多的代码。你现在使用的代码是什么?听起来你并不需要正则表达式,只需要一个字符串替换函数:“with \”-这取决于你使用的语言。Ashwini,不。这是纯Python。我不理解这个问题。你能用描述什么不起作用的方式来描述什么不起作用吗?您拥有的字符串是什么?您希望匹配什么?您应该进一步了解模板引擎的工作原理。如果可能的话,可能会给我们展示更多的代码。你现在使用的代码是什么?听起来你不需要正则表达式,只需要一个字符串替换函数:“with\”-这取决于你使用的语言。Ashwini,不。这是纯Python。