问题 Regexp:除序列外的任何字符


[^ abc]除了:a,b或c之外的任何单个字符

但是如何为除序列之外的任何字符制作正则表达式 abc

那样的话

"Hello abc awesome world".scan /[^(abc)]+/

将返回“你好”和“令人敬畏的世界”。

PS:而不是分裂字符串


10312
2018-03-06 12:23


起源

有关: stackoverflow.com/q/5504272/946850 - krlmlr
也许更相关,或许更紧密: stackoverflow.com/q/6180556/946850 - krlmlr
谢谢你,用户名! :) - fl00r


答案:


这就是所谓的 环视四周,在你的情况下,你会想要使用负向前瞻。我不确定Ruby中的确切语法,但有些东西 (?!abc) 可能有用。请注意,环视不会消耗任何输入,因此您需要使用此后跟任何您想要匹配的模式。也许 (?:(?!abc).)+ 你在找什么?


15
2018-03-06 12:37



节省了我很多时间。正在做 (?!abc).+这对整个人物序列做了负面的预测。这个似乎是逐个字符地进行的,甚至没有发生在我身上。现在一切都很愉快。格拉西亚斯! - user1630830