<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‘字符串’ 不行  回復  更多評論
      

    主站蜘蛛池模板: 一本色道久久综合亚洲精品高清| 成人免费黄色网址| 亚洲国产精品综合久久一线| 在线亚洲高清揄拍自拍一品区| 在线视频免费观看爽爽爽| 亚洲精品**中文毛片| 91短视频免费在线观看| 亚洲日韩国产精品无码av| 免费黄色福利视频| 国产成人精品亚洲2020| 成人au免费视频影院| 亚洲精品无码中文久久字幕| 永久免费无码网站在线观看 | 无码av免费一区二区三区试看| 亚洲尤码不卡AV麻豆| 久久久久久国产精品免费免费男同 | 亚洲一区二区三区免费视频| 91嫩草私人成人亚洲影院| **一级毛片免费完整视| 亚洲中文字幕无码av永久| 在线看片无码永久免费aⅴ| 男女啪啪免费体验区| 国产l精品国产亚洲区在线观看| 亚洲免费视频在线观看| 亚洲一级视频在线观看| 日本免费高清一本视频| 国产免费人成视频尤勿视频| 亚洲黄色在线观看视频| 四虎影院免费视频| 一级毛片在线免费视频| 亚洲AV永久精品爱情岛论坛| 91免费资源网站入口| 免费大片av手机看片高清| 亚洲熟妇无码AV在线播放| 色老头永久免费网站| 色天使亚洲综合一区二区| 久久精品亚洲乱码伦伦中文| 97视频免费观看2区| 直接进入免费看黄的网站| 亚洲卡一卡2卡三卡4卡无卡三| 毛片a级毛片免费播放下载|