0

我很好奇是否有一个正则表达式来查找可打印的输入(由POSIXcharacter class定义[:print:],但也不包含特定字母,例如 letter a

这样的表达式将使我能够查找所有可打印的字符,然后执行其他排除。我最初的想法是使用嵌套字符类来实现这一点,但我认为这不会奏效。

这是针对我正在研究的小型解析器的lex——感谢您的任何反馈。

4

2 回答 2

1

flex (如果你可以使用它)提供了{-}提供你正在寻找的东西的运营商:

 [[:print:]]{-}[a]

它也有一个{+}操作符。不过,它们只适用于字符类。

于 2012-09-25T23:09:16.130 回答
0

在 PCRE 和其他具有环视功能的引擎中,您可以使用它(例如[[:print:]](?<!a)),但除非它最近发生了变化,否则lex不支持环视。

虽然可能有一些方法可以在词法分析器中进行这种区分,但在解析逻辑中这样做可能更清晰。

于 2012-09-25T21:53:00.693 回答