2011-07-20 28 views
1

改行を含むすべての文字と正規表現をどのように一致させることができますか? すべての文字を大括弧 "()"でマッチさせようとしています。ドットマッチをすべて有効にしたくありません。正規表現内の任意の文字の一致方法

私は

\([.\n\r]*\) 

を試みたが、それは動作しません。

(.*\) This doesn't work if there is an new line between the brackets. 

私は正規表現をテストするためにhttp://regexpal.com/を使用しています。あなたが何か良いことを知っているか教えてください。

+0

ドットにすべての修飾語を追加してみませんか?それが存在する理由です。 –

+0

新しい行と一致しないようにドットが必要なので正規表現はより長いですが、この部分だけが動作しません。 –

+0

まだ混乱しています。新しい行を含むすべての文字をマッチさせるつもりならば、 '.' *もまた新しい行にマッチすれば違いはありません。 –

答えて

5

私は通常、このような状況で\([\S\s]*\)のようなものを使用します。

[\S\s]は、空白文字または空白文字以外の文字と一致します。

+0

「/.*/s」と「[\ s \ S] *」の違いは何ですか? –

+0

@ Jason:実用的な観点から:私が知っている違いはありません。正規表現エンジン実装の視点から:わかりません!この回答の観点から、OPは彼らが使用している言語/プラットフォームを特定していません。 '[\ S \ s]'構文は正規表現のフレーバーで動作するはずです。ドットマッチを指定するための構文は、さまざまなフレーバーによって異なります(最初の場所でもサポートされていると仮定します)。 – LukeH

+0

ありがとうございます。私は今OPが変更子を追加したくない理由を理解しています。それにもかかわらず、違いはないはずがないので、私はナットに行かないようにしたいと思っていました。 –

2

最初の例では、文字クラス内でドットが文字通り扱われるため、最初の例は機能しません(すべての文字の代わりに。文字に一致します)。

\((.|[\n\r])*\) 
関連する問題