2010-06-02 2 views
1

에서 정규 표현식으로 대체 현재 내가텍스트 SQL 서버

<span class="escape_<<digits>>"></span> 

클래스 이름에 <<digits>> 인 패턴으로 변화하는 유일한 것은 시작 텍스트가 입력 nvarchar(max)의 SQL 서버를 열 수 있습니다.

공통 부분은 일부 샘플 값

<span class="myclass_12"></span> 
<span class="myclass_234"></span> 
<span class="myclass_4546"></span> 

이러한 스팬 텍스트 만 열의 시작에 존재

</span> 

<span class="myclass_ 

및 폐쇄된다. 가운데에 일치하는 모든 스팬은 제거하거나 일치 시켜서는 안됩니다.

스팬의 이러한 모든 발생을 제거하려면 regex로 SQL Server 쿼리를 뭐라 구요?

답변

4

당신은

<span class="myclass_12"></span> 
<span class="myclass_234"></span> 
<span class="myclass_4546"></span> 

같은 값을 가지고 있고, 그것에서 단지 myclass_12 등의 값을 얻을이 쿼리를 사용하려면 :

SELECT 
    REPLACE(REPLACE(string, '<span class="', ''), '"></span>', '') 
FROM 
    dbo.YourTable 

그것은 SQL 서버부터 정규식에 따라 아니에요을/Transact-SQL은 기본적으로 정규 표현식을 지원하지 않습니다. 필요한 경우 Regex 일치를 항상 원한다면 SQL Server에 해당 기능을 구현하는 SQL-CLR 어셈블리를 만드는 것이 좋습니다.

4

SQL Server는 정규식을 지원하지 않습니다.

SQL Server 2005 이상을 사용하는 경우 SQL Server 용 CLR 함수를 작성하여 호출 할 수 있습니다.

자세한 방법은 this (SQL Server 2005> 정규식을 사용하여 패턴 일치 및 데이터 추출이 쉬워 짐)을 참조하십시오.