2012-03-06 79 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