1

現在、SQL クエリ用の非常に単純なテキストボックスからクエリへのパーサーを作成しています。実行する必要があることの 1 つは、一重引用符で囲まれた文字列を見つけて適切にパラメーター化する必要があることです。私はそれをグーグルで検索し、ページごとに答えを探しましたが、見つけることができるものは何もありません.

与えられたクエリ

INSERT INTO PracticeTable
VALUES ('Hello 'World')

または、たとえば、

WHERE users.UserProfiles = 'John's Profile'

私はへの方法を理解する必要があります

  1. 一重引用符で囲まれた文字列を見つける
  2. 内側から紐を取り出す

ループを使用して、自分でパラメーター化を行うことができます。

クエリ セグメントの例を完成させるには

WHERE users.UserProfiles = 'John's Profile'

「John's Profile」に一致するものを取得し、文字列全体から John's Profile を削除する必要があります。

誰でも私を助けることができますか?また、ユーザーからクエリを受け取って実行するためのより良い方法を誰かが提案できますか? 私はいつも提案を探しています。

ありがとうございました!

4

1 に答える 1

0

以下をテストします。引用符で囲まれた文字列をキャッチします。

[^']*'(.+)'

=>

WHERE users.UserProfiles='ジョンのプロファイル'

抽出されたグループ

ジョンのプロフィール

あなたの内部がエスケープされていないので、あなたのWHERE句は間違ったSQLであることに言及したいと思います。


あなたが尋ねたように、引用された文字列は次の方法でかなり簡単にキャプチャできます。

[^']*('.+')
于 2012-09-15T01:20:39.610 に答える