<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Skynet

    ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks
       由于 需求原因,需要匹配 提取中文,大量google下,并沒有我需要的。花了一個小時大概測試,此utf8中文通過,特留文。
       參考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html
              http://topic.csdn.net/u/20070404/15/b011aa83-f9b7-43b3-bbff-bfe4f653df03.html

        首先,確保所有編碼都為 unicode
             比如 str.decode('utf8') #從utf8文本中
                  u"啊l"  #在控制臺輸出中   
             (羅嗦下)本想使用參考一定編碼 Hex 但郁悶的是 這每個字好像占2個位置,使用正則匹配無果。
        其次,確定中文范圍 : [\u4e00-\u9fa5]
              (這里注意下 python 的re寫的時候) 要  u"[\u4e00-\u9fa5]" #確定正則表達式也是 unicode 的
        demo :
       
    >>> print re.match(ur"[\u4e00-\u9fa5]+","")
    None
    >>> print re.match(ur"[\u4e00-\u9fa5]+",u"")
    <_sre.SRE_Match object at 0x2a98981308>


    >>> print re.match(ur"[\u4e00-\u9fa5]+",u"t")
    None


    >>> print tt
    現在才明白
    >>> tt
    '\xe7\x8e\xb0\xe5\x9c\xa8\xe6\x89\x8d\xe6\x98\x8e\xe7\x99\xbd'
    >>> print re.match(r"[\u4e00-\u9fa5]",tt.decode('utf8'))
    None
    >>> print re.match(ur"[\u4e00-\u9fa5]",tt.decode('utf8'))
    <_sre.SRE_Match object at 0x2a955d9c60>


    >>> print re.match(ur".*["u4e00-"u9fa5]+",u"hi,匹配到了")
    <_sre.SRE_Match object at 0x2a955d9c60>
    >>> print re.match(ur".*["u4e00-"u9fa5]+",u"hi,no no")
    None
          



    其他 擴充 范圍 (轉)
    這里是幾個主要非英文語系字符范圍(google上找到的):
    2E80~33FFh:中日韓符號區。收容康熙字典部首、中日韓輔助部首、注音符號、日本假名、韓文音符,中日韓的符號、標點、帶圈或帶括符文數字、月份,以及日本的假名組合、單位、年號、月份、日期、時間等。
    3400~4DFFh:中日韓認同表意文字擴充A區,總計收容6,582個中日韓漢字。
    4E00~9FFFh:中日韓認同表意文字區,總計收容20,902個中日韓漢字。
    A000~A4FFh:彝族文字區,收容中國南方彝族文字和字根。
    AC00~D7FFh:韓文拼音組合字區,收容以韓文音符拼成的文字。
    F900~FAFFh:中日韓兼容表意文字區,總計收容302個中日韓漢字。
    FB00~FFFDh:文字表現形式區,收容組合拉丁文字、希伯來文、阿拉伯文、中日韓直式標點、小符號、半角符號、全角符號等。
    比如需要匹配所有中日韓非符號字符
    ,那么正則表達式應該是^[\u3400-\u9FFF]+$
    理論上沒錯
    , 可是我到msn.co.ko隨便復制了個韓文下來, 發現根本不對, 詭異
    再到msn.co.jp復制了個’お’
    , 也不得行..
    然后把范圍擴大到^
    [\u2E80-\u9FFF]+$, 這樣倒是都通過了, 這個應該就是匹配中日韓文字的正則表達式了, 包括我們臺灣省還在盲目使用的繁體中文
    而關于中文的正則表達式
    , 應該是^[\u4E00-\u9FFF]+$, 和論壇里常被人提起的^[\u4E00-\u9FA5]+$很接近
    需要注意的是論壇里說的^
    [\u4E00-\u9FA5]+$這是專門用于匹配簡體中文的正則表達式, 實際上繁體字也在里面, 我用測試器測試了下’中華人民共和國’, 也通過了, 當然, ^[\u4E00-\u9FFF]+$也是一樣的結果。

       
      


    整理 m.tkk7.com/Good-Game
    posted on 2009-05-02 18:27 劉凱毅 閱讀(30672) 評論(3)  編輯  收藏 所屬分類: python

    Feedback

    # re: python 正則匹配中文 2012-12-13 15:43 為全額
    阿斯頓  回復  更多評論
      

    # re: python 正則匹配中文 2014-07-20 22:12 佟鐵
    很好,謝謝,一定前面加ur'',  回復  更多評論
      

    # re: python 正則匹配中文 2015-09-18 20:31 謝謝
    我還以為 u 和 r 參數可以隨便放呢,實際上 ur‘字符串’ 可以 而 ru‘字符串’ 不行  回復  更多評論
      

    主站蜘蛛池模板: 久久黄色免费网站| 免费在线观看a级毛片| 亚洲午夜国产精品无码老牛影视| 亚洲av永久无码精品表情包| 麻豆一区二区三区蜜桃免费| 永久在线观看免费视频| 国产午夜亚洲精品理论片不卡| 亚洲精品国产电影午夜| 最近免费中文在线视频| 亚洲精品色婷婷在线影院| 亚洲第一成年网站大全亚洲| 免费看又黄又无码的网站| 久久综合亚洲色HEZYO社区| 看免费毛片天天看| 男女做羞羞的事视频免费观看无遮挡| 亚洲午夜日韩高清一区| 亚洲乱码一二三四区国产| 97在线免费观看视频| 亚洲国产精品成人精品无码区 | 亚洲精品国产精品乱码不卞| 思思久久99热免费精品6| 亚洲中文字幕丝袜制服一区| 国产免费无码一区二区 | 亚洲入口无毒网址你懂的| 好先生在线观看免费播放| 国产精品亚洲专区无码牛牛| 亚洲 国产 图片| av永久免费网站在线观看| 亚洲欧洲自拍拍偷精品 美利坚| 亚洲欧美日韩自偷自拍| 亚洲国产成人久久精品99 | 亚洲中文无码永久免| 无码欧精品亚洲日韩一区夜夜嗨| 亚洲午夜福利在线视频| MM131亚洲国产美女久久| 国产午夜亚洲精品不卡电影| 亚洲精品午夜国产VA久久成人 | 91福利免费视频| 久久亚洲欧洲国产综合| 日本免费xxxx| 国产vA免费精品高清在线观看|