python篩選中日韓文

2021-08-04 17:01:57 字數 2986 閱讀 2056

通常我們可以使用 repr()函式檢視字串的原始格式。這對於寫正規表示式有所幫助。

utf-8 是變長的,1-6個位元組,少數是漢字每個占用3個位元組,多數占用4個位元組,正則式為[\x80-\xff]

re.match(), re.search 。

兩個函式的匹配過程完全一致,只是起點不同。

match只從字串的開始位置進行匹配,如果失敗,它就此放棄;

而search則會鍥而不捨地完全遍歷整個字串中所有可能的位置,直到成功地找到乙個匹配,或者搜尋完字串,以失敗告終。

如果你了解match的特性(在某些情況下比較快),大可以自由用它;如果不太清楚,search通常是你需要的那個函式。

從一堆文字中,找出所有可能的匹配,以列表的形式返回,這種情況用findall()這個函式。

如果字串不是unicode的,可以使用unicode()函式轉換之。如果你知道源字串的編碼,可以使用newstr=unicode(oldstring, original_coding_name)的方式轉換

# -*- coding: utf-8 -*- 

import sys

import rereload(sys)

sys.setdefaultencoding('utf8')s="""

en: regular expression is a powerful tool for manipulating text.

zh: 漢語是世界上最優美的語言,正規表示式是乙個很有用的工具

jp: 正規表現は非常に役に立つツールテキストを操作することです。

jp-char: あアいイうウえエおオ

kr:정규 표현식은 매우 유용한 도구 텍스트를 조작하는 것입니다.

"""

print "原始utf8字元"

#utf8

print "--------"

print repr(s)

print "--------\n"

#非ansi

re_words=re.compile(r"[\x80-\xff]+")

m = re_words.search(s,0)

print "非ansi字元"

print "--------"

print m

print m.group()

print "--------\n"

#unicode

s = unicode(s)

print "原始unicode字元"

print "--------"

print repr(s)

print "--------\n"

#unicode chinese

re_words = re.compile(u"[\u4e00-\u9fa5]+")

m = re_words.search(s)

print "unicode 中文"

print "--------"

print m

print m.group()

res = re.findall(re_words, s) # 查詢出所有的匹配字串

if res:

print "there are %d parts:\n"% len(res)

for r in res:

print "\t",r

print

print "--------\n"

#unicode korean

re_words=re.compile(u"[\uac00-\ud7ff]+")

m = re_words.search(s,0)

print "unicode 韓文"

print "--------"

print m

print m.group()

print "--------\n"

#unicode japanese katakana

re_words=re.compile(u"[\u30a0-\u30ff]+")

m = re_words.search(s,0)

print "unicode 日文 片假名"

print "--------"

print m

print m.group()

print "--------\n"

#unicode japanese hiragana

re_words=re.compile(u"[\u3040-\u309f]+")

m = re_words.search(s,0)

print "unicode 日文 平假名"

print "--------"

print m

print m.group()

print "--------\n"

#unicode cjk punctuation

re_words=re.compile(u"[\u3000-\u303f\ufb00-\ufffd]+")

m = re_words.search(s,0)

print "unicode 標點符號"

print "--------"

print m

print m.group()

print "--------\n"

匹配中文簡體和繁體:        ^[\u4e00-\u9fff]+$

匹配中文簡體:                   ^[\u4e00-\u9fa5]+$

匹配日文平假名:               ^[\u3040-\u309f]+$

匹配日文片假名:               ^[\u30a0-\u30ff]+$

匹配韓文:                           ^[\uac00-\ud7ff]+$

Excel 篩選中文字

大家都知道,中文字元最大的特點就是雙位元組,在excel中同樣如此,因此可以使用公式來區分開中文字元。假設資料在a列。在b1中輸入公式 left a1,lenb a1 len a1 公式往下拉 則可快速得到中文的單元格。其中,excel中,len 函式是返回字元個數,而lenb 函式是返回位元組數,...

wireshark中篩選中文內容

工作需要經常需要在wireshark裡搜尋內容,記錄一點小tips 搜尋方式是直接使用tcp.payload contains 或者data.data contains 由於 不同請求傳送方處理的方式不同,需要多處理集中情況 1,傳送方進行了urlencode,搜尋的就是內容.encode的內容 2...

python 特徵篩選

from sklearn.feature selection import variancethreshold,selectkbest,chi2 from sklearn.datasets import load iris import pandas as pd x,y load iris retu...