1

我需要匹配 Perl 正则表达式匹配器之类的东西

m/my regex!*/

其中引号可以是范围内的任何字符。所以上面是一样的

m%my regex!*%

对词法分析器规则的天真猜测是

REGEX: 'm' quote=. (~(quote))* quote;

但这不起作用,因为后者quote指的不是规则,quote=而是一些规则。

我可以用很多自己的代码来做到这一点,比如

REGEX: 'm' quote=. { ... implement the loop and final match myself ... } ;

但不知何故,我认为应该有一种规范的方式来做这些事情。

4

2 回答 2

1

...但不知何故,我认为应该有一种规范的方式来做这些事情。

那没有。您必须使用自定义代码来执行此操作。

于 2013-01-11T21:58:29.613 回答
1

看看 PL/SQL 解析器(这里)。Oracle 还支持那些 Perl 风格的引用字符串。

像:

q':select * from employees where last_name = 'smith':'

以自定义代码为例。(它包含 C 和 Java 实现)。也许在您的情况下,它甚至可以简化。

伊万

于 2013-01-13T11:26:54.300 回答