2012-03-06 9 views
11

除く任意の文字[^ ABC]を除く任意の1文字:A、B、またはC正規表現:シーケンス

しかし、どのように、私はシーケンスabc

以外の任意の文字に正規表現を作ることができるので、

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

"Hello"と "awesome world"を返します。

PS:そして、それはあなたのケースでは、あなたが否定先読みを使用したいと思う、これはlookaroundと呼ばれる文字列に

+0

関連:http://stackoverflow.com/q/5504272/946850 – krlmlr

+0

さらに関連しています:http://stackoverflow.com/q/6180556/946850 – krlmlr

+0

ありがとう、ユーザー名! :) – fl00r

答えて

15

を分割に関するものではありません。私はRubyの正確な構文についてはわかりませんが、(?!abc)に沿って何かが動くかもしれません。ルックアラウンドは入力を消費しないので、これに続いて一致させるパターンが必要です。おそらく(?:(?!abc).)+がお探しですか?

+1

私はたくさんの時間を節約しました。 '(?!abc)。+'を実行していたので、一連の文字全体を否定的に見ていました。これは、キャラクターごとにそれを行うように見えますが、それは私には起こりませんでした。今はすべてが幸せです。グラシアス! – user1630830