私はいくつかの文法ファイルを解析するためのJavascriptコードを書いています、それはかなりのコードですが、ここに関連情報を投稿します。文字列内に保持されている重複行を照合するために、JavascriptRegexpを使用しています。文字列には、たとえば、次のものが含まれます(文字列名が行であると想定します)。
もしも そうしないと ; 印刷 {{ } test1 test1 = + - * / (( )。 num ストリング コメント id test2 test2
何が起こるかは、「test1」と「test2」で見つかった一致です。次に、重複を削除して、test1とtest2のインスタンスを1つ残します。何が起こっているのかはまったく一致しません。私は正規表現に自信がありますが、javascriptが予期しないことをしている可能性があります。上記の文字列で作業を行うコードは次のとおりです。
var rex = new RegExp("(.*)(\r?\n\1)+","g");
var re = '/(.*)(\r?\n\1)+/g';
rex.lastIndex = 0;
var m = rex.exec(lines);
if (m) {
alert("Found Duplicate");
var linenum = lines.search(re); //Get line number of error
alert("Error: Symbol Defined twice\n");
alert("Error occured on line: " + linenum);
lines = lines.replace(rex,""); //Gets rid of the duplicate
}
if(m)ステートメントには決して入りません。したがって、一致するものは見つかりません。ここで正規表現をテストしました:http ://regexpal.com/ コードで正規表現と提供されたサンプルテキストを使用します。うまくマッチしているので、ちょっと戸惑います。誰かが助けることができれば、それは素晴らしいことです。
ありがとうございました。
編集:追加するのを忘れました、私はこれをFirefoxでテストしています、そしてそれはFirefoxでのみ機能する必要があります。それが重要かどうかわからない。