一些字串既包含中文、也包含英文、數字等,需要對這類字串做提取,單個中文字元、英文單詞以及數字表達等。需要採用正則匹配的方式來做
比如對於如下針對資料的描述
android/ios 2條裝(0.25公尺+1公尺)土豪金
拆分後想要得到
"android" "/" "ios" "2" "條" "裝" "(" "0.25" "公尺" "+" "1" "公尺" ")" "土" "豪" "金"
可以採用正則的方式匹配提取這些字元
def
str_split
(str):
regex = r"[\u4e00-\u9fef]|[0-9.]*[0-9]+|[a-za-z]+\'*[a-z]*|."
matches = re.findall(regex,
str, re.unicode)
return matches
print
(str_split(
"android/ios 2條裝(0.25公尺+1公尺)土豪金"
))
輸出結果如下:
['android', '/', 'ios', ' ', '2', '條', '裝', '(', '0.25', '公尺', '+', '1', '公尺', ')', '土', '豪', '金']
通過python包re來做正則匹配提取
包括四部分:中文字元、數字、英文單詞和其它字元
中文字元:[\u4e00-\u9fef]
漢字的unicode編碼從4e00開始,基本漢字到9fa5,基本補充到9fef。
漢字的unicode編碼可見 漢字的unicode編碼
數字:[0-9]*[.]?[0-9]+
這裡只匹配了整數或者帶小數的情況,對於科學計數的方式還需要另外考慮。
英文單詞:[a-za-z]+\』*[a-z]*
其它字元: .
正則中文匹配
w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下 匹配中文字元的正規表示式 u4e00 u9fa5 或許你也需要匹配雙位元組字元,中文也是雙位元組的字元 匹配雙位元組字元 包括漢字在內 x00 xff 注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 ...
中文正規表示式匹配 正則中文匹配
這篇文章主要講如何使用正則 匹配中文字元,中文正規表示式的匹配規則不像其他正則規則一樣容易記住,下面一起看看這個中文正規表示式是怎麼樣的。w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下 匹配中文字元的正規表示式 u4e00 u9fa5 或許你也需要匹配雙位元組字元,中文也是...
中文正規表示式匹配 正則中文匹配
這篇文章主要講如何使用正則匹配中文字元,中文正規表示式的匹配規則不像其他正則規則一樣容易記住,下面一起看看這個中文正規表示式是怎麼樣的。w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下 匹配中文字元的正規表示式 u4e00 u9fa5 或許你也需要匹配雙位元組字元,中文也是雙...