我需要確定給定的字符串是否爲'abcd efg -4'格式,即'% - 數字'。我需要隔離'4',並將其增加到'5'。T-SQL模式匹配問題
字符串的其餘部分可以包含日期和時間,像這樣:
ABCD EFG - ghis asdjh - 07-07-2011 34年5月30日上午
這個字符串,實例,不符合模式即 - [數字]。對於這個字符串,從我的SQL輸出應該是
ABCD EFG - ghis asdjh - 07-07-2011 34年5月30日上午-1
如果上面的輸入,我應該得到:
ABCD EFG - ghis asdjh - 07-07-2011 34年5月30日上午-2
的數量可以是任何數量的數字,即這樣一個字符串可以爲「ABCD EFG -123'和我的T- SQL將返回'abcd efg -124'
此T-SQL代碼將被嵌入到存儲過程中。我知道我可以實現一個.Net存儲過程/函數,並使用Regex來做到這一點,但是爲了打開SQL Server上的CLR,我必須解決各種訪問問題。
我曾嘗試以下方式:
- '%[] [ - ]%[0-9]',這適用於大多數情況,但放在一個額外的空間某處,也未能
- '%[] [ - ]%[^ az] [^ AZ]%[0-9]',它設法跳過'-4'(如上例所示),但在多種情況下有效,如
- '%[] [ - ] [^ AZ] [^ AZ]%[0-9]',這在某些再次工作,不會在別人...
這種模式' - [麻木呃]'總是在字符串的末尾,如果它不存在,代碼將會附加它,如上面的例子所示。
我想要一種適用於所有情況的圖案...
該字符串可能看起來像'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