我試圖讓下面的正則表達式的工作:等效正則表達式標記
^[a-zA-Z][a-zA-Z ''.-]+[a-zA-Z]$
應該允許任何阿爾法,空間,撇號,句號和連字符,只要作爲開始和最後的字符作爲阿爾法。
John - ok
John Smith - ok
John-Smith - ok
John.Smith - ok
.John Smith - not ok
John Smith. - not ok
當我使用這個在T-SQL它似乎不工作,我不知道,如果它的輸入開始/結束標記不在T-SQL兼容。如何翻譯這有效的T-SQL ?:
CREATE Function [dbo].[IsValidName](@value VarChar(MAX))
RETURNS INT
AS
Begin
DECLARE @temp INT
SET @temp = (
SELECT
CASE WHEN @value LIKE '%^[a-zA-Z][a-zA-Z ''.-]+[a-zA-Z]$%' THEN 1
ELSE 0
END
)
RETURN @Temp
End
LIKE運算符不使用正則表達式。它使用了一組更有限的通配符。除此之外,沒有'^','$'或'+'的等價物。看看文檔[這裏](https://msdn.microsoft.com/en-us/library/ms179859.aspx)或[這裏](https://technet.microsoft.com/en-us/library /ms187489(v=sql.105).aspx)。如果您想要完整的正則表達式支持,您可能必須使用CLR函數或過程。 –