在这种情况下,perl正则表达式(PCRE)是一个字符串,在该字符串中注入了多个变量(宏)。这些组件可以定义,也可以不定义。如果在配置中未定义值,则可以提供默认值。理想情况下,一种导致表达式无法求值的符号,该符号将报告给用户。不幸的是,这是我必须使用且不能更改的逻辑。
我当前的解决方案是使用带有一些错误信息的不匹配括号,即“(Undefined-Macro” 。我希望使用一些明确的内容,但希望您能提出其他不太可能破坏的建议如果正则表达式正在注入的组件已经缺少了括号。
答案 0 :(得分:1)
真的很难确定任何给定的字符串都会出现语法错误,因为这很大程度上取决于之前的内容。括号不匹配是一种很好的破解方法,但是如果您想要替代方法,请尝试类似“ \ p:错误消息”的内容。 “ \ p”表示法必须使用单个字符或大括号,因此冒号会触发语法错误-如果在其到达的任何上下文中都将其解释为“ \ p”模式