2011-07-30 86 views
2

我有一個用英文和中文描述。PHP正則表達式來破譯英文和中文字符

我會如何使用正則表達式來說出類似的話,如果該行包含中文字符,那麼做A,否則做B?

例如這裏

電源: 110V/220W50-60HZ 
功率:60W 
光源:12V 150 W 
尺寸:220x150x280mm 
重量:2.3KG 



Voltage : 110V/220W50-60HZ 
Power : 60W 
Bulb : 12V 150 W 
Size : 220x150x280mm 
Weight:2.3KG 
+0

如果編碼是Unicode,英文字母是代碼0x0041到0x005B和0061到007B,漢字是代碼0x4E00 - 0x4FFF。您的正則表達式可能會檢查字符代碼匹配。 –

+5

爲什麼不搜索StackOverflow? http://stackoverflow.com/questions/1550950/detect-chinese-multibyte-character-in-the-string –

+0

你想從英文翻譯成中文,還是通過正則表達式區分它們?我沒有真正理解'disifer'部分。 –

回答

4

中國字符的範圍內:U+4E00..U+9FFF

如果您expreg擴展已建成Unicde支持,b\p{InCJK_Unified_Ideographs}[\x{4E00}-\x{9FFF}]一個很好的替代(這是在鏈路延Struwe給了)。

你可以發現,大部分的Unicode(所有?)這裏範圍:http://www.regular-expressions.info/unicode.html

我不知道你想達到什麼,但也許一個良好的開端將通過分割線你的描述。然後,對於每一行,找到它是否是中文,並運行適當的正則表達式。 ;)