Regex 初試Python下的中文正規表示式

2021-07-14 10:29:57 字數 1770 閱讀 3930

真的是第一次在python上做正規表示式呀……走了好多彎路,表示自己實在是笨的不行,難得實現了個小demo,做點備忘好了。

簡要概括一下就是:英文正則親和度蠻高的,隨意;中文,轉成unicode再說話!

30分鐘掌握正規表示式

拍腦袋自己想個正規表示式

在站長工具之類的地方驗證正則效果

非獲取(關鍵

輸出的時候隨意encode成自己需要的編碼

#coding=utf8

import sys

import re, os

import string

pnumberic = re.compile(u"[\\d,\\.]+(?:\\d|萬|億)元");

ppercent = re.compile(u"[\\d,\\.]+%");

pzero = re.compile(u"(?:[^\\d])0(?:[^\\d])");

pdatetime = re.compile(u"(?:(?:[0-9])[-/\\.年])(?:第[一二三四]季度)?[末初前後]?(?:(?:[01]?[0-9])[-/\\.月])?(?:[0-3]?[0-9][日])?");

deflr

(s):

return

''.decode('utf-8')

if __name__ == "__main__" :

each = u"聽說這個公司的淨資產為369.38億元(截至2023年9月30日),然後隨便放個12450元呀,2023年7月5日,12.34%和2.5%的百分比什麼的試試看。"

print each

print

if pnumberic.findall(each):

#print pnumberic.search(each).group()

for pn in pnumberic.findall(each):

print pn

each = each.replace(pn,lr(pn))

print

if ppercent.findall(each):

#print ppercent.search(each).group()

for pp in ppercent.findall(each):

print pp

each = each.replace(pp,lr(pp))

print

if pdatetime.findall(each):

#print pdatetime.search(each).group()

for dt in pdatetime.findall(each):

print dt

each = each.replace(dt,lr(dt))

print

print each

# f.write(each.encode('utf-8')+'\n')

輸出:

聽說這個公司的淨資產為369.38億元(截至2023年9月30日),然後隨便放個12450元呀,2023年7月5日,12.34%和2.5%的百分比什麼的試試看。

369.38億元

12450元

12.34%

2.5%

2023年9月30日

2023年7月5日

聽說這個公司的淨資產為(截至),然後隨便放個呀,,和的百分比什麼的試試看。

初試python多執行緒

在學習多執行緒之前,我來說說我對程序和執行緒的理解。什麼是程序 電腦程式是磁碟中可執行的二進位制 或其他型別 的資料。他們只有在被讀取到記憶體中 被作業系統呼叫的時候才可以他們的生命週期。程序是程式的一次執行,每個程序都有自己的位址空間 記憶體 資料線,以及其他記錄其運動軌跡的輔助資料。作業系統管理...

Python 網頁爬蟲初試

find find all find name attrs recursive string kwargs find all name attrs recursive string kwargs name 引數可以查詢所有名字為 name 的tag,字串物件會被自動忽略掉.keyword 引數 如果...

Mac下MAMP初試體驗

最近小學習了一下mac下的apache,mysql,php。這裡記錄一下,以備忘在mamp下測試成功,直接echo返回所資料 用komodo這個ide可以斷點除錯一些東西,但機器上安裝好之後,不能debug,failed to configure for local php debugging 還是...