2012-04-08 7 views
0

と一致させる必要があります。*および/またはreg-exesを使用して文字列を見つける必要があります。Rubyで書いています。*と/はたくさんあります。私は言語のトークナイザを構築しており、Cスタイルの複数行コメント(/ * * /)を使用する複数行コメントがあります。私はすでに一行のコメントを扱っています。ルビーの正規表現を使って、*と//

reg-exを使用する方法はいくつかの正規表現を示すために2つのフォワードスラッシュを使用せずに、エスケープの狂気の量のために私のミスを見つけることが不可能であることがわかっているからです。または、誰かが私に、まともな問題で脱出する方法をアドバイスすることができますか?私は既にシーケンスを書いてからそれをエスケープしようとしました。

ありがとうございました。役立つかもしれない

答えて

2

1つのトリックは、リテラル%r次のとおりです。私は、彼らが正規表現にいないとき、パイプを自分自身を使用したい

%r{http://www\.google\.com} 

%r|http://www\.google\.com| 

またRegexp.newを経由して正規表現の新しいインスタンスを作成し、文字列を渡すことができます。

最後に、あなたもlook at Regexp.quoteかもしれません:

は正規表現で特別な意味を持つであろう任意の文字をエスケープします。新しいエスケープ文字列を返します。エスケープ文字がない場合はselfを返します。任意の文字列に対して、Regexp.new(Regexp.escape(str))=~strがtrueになります。

+1

言い換えRegexp.quote too –

+0

@FrederickCheung:ニース、私はその方法について知らなかった。私は答えにそれを加えました。 –

関連する問題