正则表达式:如何使用正则表达式从句子中删除英语单词?

时间:2014-09-29 20:15:40

标签: regex tsql

我在SQLite中有多行,每行有一列包含这样的数据:

prosperکامیاب شدن ، موفق شدن ، رونق یافتن

正如你所看到的,句子以英文单词开头,现在我想在每个句子的第一句删除英文单词。有没有办法通过T-SQL查询(使用Regex)?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:)我把它作为一个函数来调用

create function dbo.RemoveEngChars (@Unicode_string nvarchar(max))
returns nvarchar(max) as
begin
declare @i int = 1;  -- must start from 1, as SubString is 1-based
declare @OriginalString nvarchar(100)   = @Unicode_string collate SQL_Latin1_General_Cp1256_CS_AS
declare @ModifiedString nvarchar(100) = N'';

while @i <= Len(@OriginalString)
  begin
    if SubString(@OriginalString, @i, 1) not like '[a-Z]'
    begin
      set @ModifiedString = @ModifiedString + SubString(@OriginalString, @i, 1);
    end
    set @i = @i + 1;
  end
return @ModifiedString
end

--To call the function , you can run the following script and pass the Unicode in N' prefix
select dbo.RemoveEngChars(N'prosperکامیاب شدن ، موفق شدن ، رونق یافتن')