指定された文字列が 'abcd efg -4'、つまり '%-number'の形式であるかどうかを判断する必要があります。私は '4'を分離し、それを '5'に増やす必要があります。T-SQLパターンマッチの問題
文字列の残りの部分がそうのように日付と時刻を含めることができます。
ABCD EFG - GHIS asdjh - 2011年7月7日05-30-34 AM
この文字列、のためにインスタンスは、パターンie - [number]を満たしません。上記入力された場合は、私がすべき、2011年7月7日05-30-34 AM -1
- GHIS asdjh - この文字列のために、私のSQLからの出力は
ABCD EFGする必要があります取得:
ABCD EFGを - GHIS asdjh - 2011年7月7日05-30-34 AM -2
数はそれほど文字列は「ABCD EFGことができ桁すなわち、任意の数のことができます-123 '、私のT- SQLは 'abcd efg -124'を返します
このT-SQLコードはストアドプロシージャに埋め込まれます。私は、.NETのproc /関数を実装し、これを行うRegexを実装することができますが、SQL ServerのCLRをオンに切り替えるためには、さまざまなアクセスの問題があります。
私は以下のパターンを試してみました:
- '%[] [ - ]%[0-9]'、これはほとんどの場合のために動作しますが、どこかに余分なスペースに入れて、それが
に失敗上記の例のように '-4'をスキップしますが、いくつかのケースでは、のように動作します(この例では、- '%[] [ - ]%[^ az] [^ AZ]%[0-9]
- '%[] [ - ] [^ AZ] [^ AZ]%[0-9]'、これは再びいくつかで動作し、...
このパターン他人にはしません - [麻痺するer] 'は常に文字列の最後にあります。存在しない場合は、上の例に示すように、コードがそれを追加します。
すべての場合に有効なパターンを希望します。
文字列は 'abcd efg -4 07-07-2011'のように見えます。この場合、出力は 'abcd efg -5 07-07-2011'です。しかし、文字列は 'abcd efg - 07-07-2011'のように見えるかもしれません。その場合、 'abcd efg-07-07-2011 -1'が返されますか?私はそれを正しく理解していますか? – billinkc
- [番号]またはより正確にパターンは次のようになり「からは」常に文字列の末尾になります... –
Hasanain