我需要清理表中可能被頭部污染的字符串。不需要的字符將以多個字符顯示,而有效字符之間可能會出現一些常見字符,而有效字符串以[0-9a-zA-Z]
,\[\]
和下劃線開頭,但可能包含其他字符,如#@ This_is_.a_[cat]^
,' __process_'data'#
。如何識別我的有效字符串的開始位置?如何識別可能是字母或下劃線的字符位置
像
WHILE LEN(@str) > 1 IF PATINDEX([0-9a-zA-Z\[\]_]%, @str) = 0 @str = SUBSTRING(@str,2,999) ELSE --find valid head
或類似PATINDEX([0-9a-zA-Z\[\]_]% ESCAPE _, @str)
的方式,
PATINDEX([0-9a-zA-Z\[\]_]% ESCAPE [_], @str)
,
PATINDEX([0-9a-zA-Z\[\][_]]%, @str)
不起作用(PATINDEX總是= 0)。
你可以添加一些例子:輸入字符串和清洗後的預期值? –
@Julien Vavasseur例如'__process_'data'#'作爲'__process_'data'#','。 $$ @@#123_456'應該變成'123_456' – a4194304