2012-03-06 62 views
11

任何字符[^ ABC]的任何单个字符除了:A,B,或c正则表达式:除了序列

但是我怎样才能使正则表达式除了序列abc

因此,任何字符,类似的东西

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

将返回“你好”和“真棒世界”。

PS:它是不是分割字符串

+0

相关:http://stackoverflow.com/q/5504272/946850 – krlmlr 2012-03-06 12:35:55

+0

也有关,也许更密切:http://stackoverflow.com/q/6180556/946850 – krlmlr 2012-03-06 12:43:23

+0

谢谢你,用户名! :) – fl00r 2012-03-06 12:45:01

回答

15

这就是所谓的lookaround,你的情况,你会希望使用负前瞻。我不确定Ruby中的确切语法,但沿着(?!abc)可能有效。请注意,查看器不会消耗任何输入,因此您需要在此之后添加任何您想要匹配的模式。也许(?:(?!abc).)+是你在找什么?

+1

为我节省了时间。正在做'(?!abc)。+',它为整个字符序列做了负面预测。这一个似乎是以角色为基础进行的,这对我来说甚至都没有发生。现在一切都很好,很开心。格拉西亚斯! – user1630830 2013-09-20 19:33:44