我需要匹配像Perl regexp matcher
这样的东西m/my regex!*/
其中引号可以是范围中的任何字符。所以上面和
一样m%my regex!*%
对词法分析器规则的天真猜测是
REGEX: 'm' quote=. (~(quote))* quote;
但这不起作用,因为后者quote
不是指quote=
,而是指某些规则。
我可以使用很多自己的代码来完成,比如
REGEX: 'm' quote=. { ... implement the loop and final match myself ... } ;
但不知何故,我认为应该采用规范的方式来做这些事情。
答案 0 :(得分:1)
...但不知何故,我认为应该采用规范的方式来做这些事情。
没有。您必须使用自定义代码执行此操作。
答案 1 :(得分:1)
看看PL / SQL解析器(here)。 Oracle还支持那些Perl样式的引用字符串。
像:
q':select * from employees where last_name = 'smith':'
使用自定义代码作为示例。 (它包含C和Java实现)。 也许在你的情况下它甚至可以简化。
伊万