2014-01-09 73 views
0

我從一個源像這樣得到的數據:如何區分字符串值中的阿拉伯文和英文文本?

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

我需要這種數據分爲兩列,英文文本應進入一列,阿拉伯文本應該進入另一列。

任何人都可以幫助我嗎?

+0

正則表達式或者看看字母的數值。 –

+0

它始終是相同的模式:首先是英語部分,然後是阿拉伯語部分? –

回答

0

一個簡單的解決辦法是(如果可能)格式化數據是這樣的:

空氣通路 - 首次加盟| تذاكرسفرحضورلأولمره

然後你只需要通過「|」進行分割。

0

正則表達式

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

Kiki是很好的工具,測試多個案件(您可能需要更多的字符添加到範圍)

我沒有刪除^$更一般的情況。

0

USE [HRDATA] GO

/* 對象:UserDefinedFunction [DBO] [StripVenNameAR]腳本日期:2014年1月14日上午8時50分31秒 */ SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER OFF GO

CREATE FUNCTION [DBO]。[StripVenNameAR](@InString如的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

相關問題