2011-12-14 3 views
0

現在、私は空白を両方の空白で一致すると定義されているスカラにパーサーを作成しています。/* */コメント。私は//の部分を必要としません。 http://ostermiller.org/findcomment.htmlJavaスタイルのコメントに正規表現を使用すると、スタックオーバーフローが発生する

問題は私の入力に一致するとき、私はstackoverflowのを取得していますということです。私はこのページにこの定義のほとんどを発見した

"""((\s+)|(?:/\*(?:[^*]|(?:\*+[^*/]))*\*+/))*""".r 

現在、私は、この定義を使用しています。しかし、1mbまでのスタックサイズを調整することで問題は解決します。残念ながら私の制作システムではこれが可能ではありません。 私が求めているのは、誰かが私の正規表現を改善する助けになるかどうかです。私は正規表現の世界で唯一の初心者:)事前に

おかげだので、

ヘルプはずっと、高く評価されるだろう。

ありがとうStefan。

答えて

0

コメントにはnormal* (special normal*) *パターンを使用してください。複数行のマッチングが必要です。ここで

special*/が続かないとnormal*何でもあります。引用符で囲まれていない正規表現は

  • です。\*(?!/)です。
  • 通常は[^*]です。

私はScalaのを知っていませんが、通常、使用のために特別な、1つのVARのために1つのVARを定義する必要があります。

/\*<normal>*(<special><normal>*)*\*/

と、これは恐れることなく、あなたの白いスペースを飲み込むだろうスタックオーバーフロー。

関連する問題