我试图让下面的正则表达式的工作:等效正则表达式标记
^[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函数或过程。 –