1
我需要在SQL如何在SQL單場
例如單個記錄特定的正則表達式所有出現的列表中選擇正則表達式中出現的所有我的記錄是這樣的:
=> 'Dear {0}, your account will expire in {1} days'
我保存這個字符串在表中,我要選擇所有出現在這個例子中「{}東西」
:
=> {0}
{1}
我該怎麼辦?
我需要在SQL如何在SQL單場
例如單個記錄特定的正則表達式所有出現的列表中選擇正則表達式中出現的所有我的記錄是這樣的:
=> 'Dear {0}, your account will expire in {1} days'
我保存這個字符串在表中,我要選擇所有出現在這個例子中「{}東西」
:
=> {0}
{1}
我該怎麼辦?
謝謝大家 我剛剛發現我的問題
Declare @InputText nVarChar(100)
;
Select @InputText = 'Dear {Token 0}, your account will expire in {Token 1} days'
;
with Tokens AS
(
SELECT SUBSTRING(@InputText,PATINDEX('%{%',@InputText)+1,PATINDEX('%}%',@InputText)-PATINDEX('%{%',@InputText)-1) As Token
, SUBSTRING(@InputText,PATINDEX('%}%',@InputText)+1,LEN(@InputText)) As New
, PATINDEX('%{%',SUBSTRING(@InputText,PATINDEX('%}%',@InputText)+1,LEN(@InputText))) As [NextStart]
, PATINDEX('%}%',SUBSTRING(@InputText,PATINDEX('%}%',@InputText)+1,LEN(@InputText))) As [NextEnd]
Union All
Select SUBSTRING(Tokens.New,Tokens.[NextStart]+1,Tokens.[NextEnd]-Tokens.[NextStart]-1)
, SUBSTRING(Tokens.New,Tokens.[NextEnd]+1,LEN(Tokens.New))
, PATINDEX('%{%',SUBSTRING(Tokens.New,Tokens.[NextEnd]+1,LEN(Tokens.New)))
, PATINDEX('%}%',SUBSTRING(Tokens.New,Tokens.[NextEnd]+1,LEN(Tokens.New)))
From Tokens
Where Tokens.[NextStart] != 0
) Select Token
From Tokens
以及結果的答案會是這樣的:
=>
Token 0
Token 1
\{(\d+)\}
,但如果可能有字母,數字和下劃線,它應該是\{(\w+)\}
感謝你的答案 但我使用sql服務器,我也不想用另一個表中的一些簡單表達式替換這些正則表達式,我只是想列出它們,而且它們可能在其他輸入文本中更多或更少 – user593630