【发布时间】:2012-04-24 08:42:00
【问题描述】:
快速提问 -
如何用 {x,y} 创建一种字符串语言,但用 (xy) 否定所有字符串?
到目前为止我的尝试:
\bx*[^(xy)]*y\b 或 \by*[^(xy)]*x\b 或 \b[^(xy)][xy]*[^(xy)]*\b
最后一个限制最少,但在 [^(xy)] 的多次使用中显得笨拙。
什么是完全否定包含 (xy) 但允许所有其他组合的字符串的最懒惰最方便的方法?
谢谢
已编辑: 允许的示例字符串:xxxxxxx yyyyyyyyy yxxxx yyyyyyxx
不允许的示例字符串:xxxxyxxx xyxxxx yyyyxyyy yyyxyxy 等
【问题讨论】:
-
仅供参考
[^(xy)]的意思是“一个字符不是(、x、y´ or a)`”。 -
@TimPietzcker 啊,这是我的问题。如何正确使用插入符号
^来否定字符串而不仅仅是字符?是[^x][^y]吗? -
不,这就是可以使用否定前瞻断言的用途 - 请参阅 Joey 的回答。
标签: regex regex-negation