0

私のWebアプリケーションでは、ユーザーにSELECTステートメントのみを入力してもらいたいです。次の正規表現を使用してエントリを検証しています。

(^(?i)select.+)(\\w|\\W)

上記のコードは、エントリがSELECTで始まり、次にWHITESPACEで始まることを確認します(例:SELECT * FROM TABLE1)ただし、クエリの作成中にユーザーが「ENTER」キーを持っている場合、正規表現は失敗します。だから私はREGEXをすべての「ENTER」キーにしたい。ユーザーがテキスト領域で「ENTER」キーを使用できるようにするためのREGEXの構文を教えてもらえますか?

4

1 に答える 1

3

余談ですがSELECT、ドットは改行以外の文字と一致するため、コードは空白を確保するために何もしません。

しかし今、あなたの質問に答えるために:あなた(?s)はドットが改行にも一致することを可能にするために旗を必要とします。さらに、\sトークンを使用して空白の存在を表明する必要があります。トレーリング(\w|\W)はかなり神秘的です-それはどんなキャラクターにもマッチします...

だから私はこれを提案します:

"^(?is)select\\s.*"

あるいは

"^(?i)select\\s"

文字列が。で始まるかどうかを確認するには、これで十分だからSELECT<space>です。

于 2012-07-09T11:26:54.393 に答える