私はこのようなSQL文を持っています。C#regex:xで始まりyで終わる文字列とマッチします。末尾の部分は含まず、最後のパターンと一致します。
SELECT distinct [testCountry].[Division] as c0
FROM (....) AS testCountry
WHERE ([testCountry].[Division] <> '' and [testCountry].[Division] is not null)
ORDER BY [testCountry].[Division] asc
(....)の部分は、他のSQLステートメントを含むだけでなく、キーワードSELECT, WHERE, ORDER BY
を含むことができます。 ここで最後のWhere句を削除したいと考えています。WHERE ([testCountry].[Division] <> '' and [testCountry].[Division] is not null)
どのように正規表現を作成しますか?
私はこのようなSTH試してみた:
string res = Regex.Replace(originalSql, @"(WHERE[\S\s]*?)(ORDER BY)", "$2");
をそれはORDER BY
に続く他の場所にあるすべてのWHERE
を削除します。 正規表現をより簡潔に書く方法もありますか?
ありがとうございました!
ドット '.'の代わりに' [\ S \ s] 'を使う理由は? – juharr
元のSQL文には、SQLサーバ管理スタジオ – strisunshine
に表示されるような改行があります。ドットが改行に一致する必要があるかどうかを伝えるための設定があります。 – juharr