如何在字符串值中分隔阿拉伯语和英语文本?

时间:2014-01-09 06:31:59

标签: sql-server

我从这样的来源获取数据:

  

航空通道 - 第一次加入تذاكرسفرحضورلأولمره

我需要将这种数据分成两列,英文文本应该分成一列,阿拉伯文本应该进入另一列。

任何人都可以帮我这个吗?

3 个答案:

答案 0 :(得分:0)

一个简单的解决方案是(如果可能的话)将数据格式化为:

航空通道 - 首次加入| تذاكرسفرحضورلأولمره

然后你只需要按“|”进行拆分。

答案 1 :(得分:0)

REGEX

(?P<en>[a-zA-Z-\s]+) (?P<ar>[\w\s]+)

Kiki是测试多个案例的好工具(您可能需要在范围中添加更多字符)

我确实删除了^$更为一般的情况。

答案 2 :(得分:0)

USE [HRData] GO

/ * 对象:UserDefinedFunction [dbo]。[StripVenNameAR]脚本日期:1/14/2014 8:50:31 AM < /强> * / SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER OFF GO

创建功能[dbo]。[StripVenNameAR](@InString as NVarChar(4000))
返回smallint AS
BEGIN
    将@ReturnVal声明为smallint
    将@OutString声明为NVarchar(4000)
    声明@Pos为smallint
    宣布@CurChar为NVarChar(1)
    SET @ReturnVal = 0

IF LEN(@InString) = 0                       
    SET @ReturnVal = 0                 
ELSE                        
BEGIN                       
    Set @Pos = 1                    
    SET @OutString = ' '                    
    WHILE (@Pos <= Len(@InString))                  
    BEGIN                   
        Set @CurChar =  SUBSTRING(@InString, @Pos, 1)               
        if unicode(@CurChar) between 1536 and 1791
            SET @ReturnVal = @Pos
            Set @Pos = @Pos + 1    
            if  @ReturnVal>=1
            Break
            else
            continue          
    END  
    end

RETURN @ReturnVal
结束

GO