5

次以外の文字に一致するように PATINDEX または LIKE ステートメントを作成するのを手伝ってください。

  • A ~ Z、0 ~ 9、ハイフン (-)、ピリオド (.)、アンダースコア (_)、チルダ (~)

これを、nvarchar(200) 入力を持つスカラー UDF で使用する予定です。これは、入力を次のように処理します。

  1. 一致しない文字をハイフン (-) に置き換えます
  2. 2 つのハイフン (--) を 1 つの (-) に置き換えます
  3. 先頭と末尾のハイフン (-) を削除します
  4. 処理された入力を返します

これは、SEO に適した URL の一部を作成するために使用されます/my-seo-friendly-url-1。パターン マッチングの部分を除けば、この UDF の実行には自信があります。正規表現のようなものは私を混乱させます! 助けてください。

事前にご協力いただきありがとうございます。

4

1 に答える 1

5

おそらくあなたのアプリケーションで最もよく行われますが

SELECT PATINDEX('%[^-a-zA-Z0-9.~_]%', @YourString COLLATE Latin1_General_BIN)

TSQLで実行する必要があります

于 2012-05-20T16:22:27.737 に答える