2009-08-13 6 views
1

を置き換えますまたはf)」Flexの文字列は、私は誰かが、次の正規表現で問題は、Flexを使用して行う例を置き換える見ることができます願っていた正規表現の問題

は、上記の通常の正規表現式は次のようになります

\(e or f\)(\s)*(and|or)*((\s)+|$)+

http://gskinner.com/RegExr/(Flexベース)を使用して確認したように、残りの文字列には "a"が残ります。これはすべて標準的なものなので、Regexのエンジンサポートの問題ではないことを願っています。前もって感謝します。

EDIT:上記の文字列ベースの正規表現で「/」を含めても何も変わりません。

答えて

1

これは構文の問題のようです。最初の投稿では、RegExpのリテラル構文を使用しようとしましたが、この構文は引用符で囲まず、変数を許可しません。

Flexはリテラルパターンを置換パターンとして使用しようとしていると考えていました。 "bracketContents"変数は必須であるため、RegExpコンストラクタを使用する必要があります。変数が必要とされていない

は、正規表現リテラルの正しい構文はあったであろう持っていた:

remainder=inputString.replace(/\(e or f\)(\s)*(and|or)*((\s)+|$)+/ig, ""); 
+0

を明確いただきありがとうございます。 – raptors

1

私は正しい出力を取得するには、次の

var replacePattern:RegExp=new RegExp(
        "\\("+bracketContents+"\\)(\\s)*(and|or)*(\\s|$)+", 
        "ig"); 

remainder=inputString.replace(replacePattern,""); 

をしようとした場合。誰がなぜこれが起こったのか分かっていれば面白いだろう。

関連する問題