A. python3.11如何將幫助文件調為中文
python變成中文版的實現方法如下:
首先下載pycharm漢化包;
然後將「resources_en.jar」文件更名為「resources_cn.jar」;
最後將「resources_cn.jar」文件復制回lib文件夾內即可。
PS:建議不要使用漢化版,會導致一些小問題,例如設置界面顯示不完整等。
B. 誰有python 中文api幫助文檔chm格式的啊
Python只有txt、pdf、epub、html款,沒有chm款。
在此處可以在線查看Python文檔:Python 文檔(中文)
在此處可以下載txt、pdf、epub、html的Python 3.8.5文檔:Python 3.8.5 文檔下載
C. 如何python提取txt文檔裡面全部的中文和中文符號,並且保存為新的txt文檔
用beautifulsoup處理啊,去除英文和符號就是中文啦
importre
zhongwen=re.sub(r'[w<>/,=:"']','',text')
D. python的re,正則表達式,可以用中文么
解決了>>>
a='中文'>>>
a'\xd6\xd0\xce\xc4'>>>
import
re>>>
mytestre=re.compile('\xd6\xd0\xce\xc4')>>>
b='中文asdf223中文ss'>>>
mytestre.sub('zw',b)'zwasdf223zwss'>>>復制代碼關鍵是要找到中文相應coding對應的編碼,這里中文='\xd6\xd0\xce\xc4'所以,就用\xd6\xd0\xce\xc4代替中文就可以了,如果是其他編碼,也用類似的方法找到編碼的字元串就可以了,沒測試過,應該是這樣的。哈哈。:mrgreen:
E. python-docx官方文檔中文
沒有找到。
第一個:
http://python-docx.readthedocs.io/en/latest/api/table.html#id1
和http://python-docx.readthedocs.io/en/latest/api/document.html#id1
有tables返回。
第二個:
用re來解決,\d{4}\D\d{1,2}\D\d{1,2}\D ,這些匹配到的就是日期,替換成你要的。
F. python中re庫的常見用法
. 匹配除換行符外的任意字元
\d 匹配數字
\D 匹配非數字
\w 匹配數字字母下劃線,支持中文
\W 小寫w的反集
[abc] 匹配abc中任意一個
[a-f] 匹配字母a到f中的任意一個
x|y 匹配x或者y
^ 匹配字元串的開頭
$ 匹配字元串的結尾
{3,5} 匹配次數,最少3個,最多5個
{3,} 至少匹配3次
* 匹配前一個字元,0次或多次
+ 匹配前一個字元,1次或多次
? 當前面不是數量表達式時,代表匹配0次或1次
舉個栗子:
findall()函數的作用是匹配所有符合條件字元串,並以列表形式返回
由於.是匹配除換行符外的所有字元,{3,5} 匹配次數,最少3個,最多5個,在默認的貪婪模式下會匹配最多的字元,所以在列表中,字母a開頭的字元串後面都跟了5個字元。
可以看到在非貪婪模式下,列表中的每一項都匹配最少的字元數。
從前往後,匹配到符合條件的最短的每一個字元串
邊界字元:
^ 限定開頭
$ 限定結尾
匹配分組:
() 提取出來的只有括弧里匹配到的部分
上文中已經用到這個方法了,返回匹配到的字元串列表,如果沒有匹配到的內容,則返回空列表。
flags參數是可以省略的,不省略時代表具有其他特殊的功能,如忽略大小寫,忽略換行符等,re.S代表匹配時忽略換行符
re.search()和re.findall()的參數是一樣的,只是返回結果不同,如果匹配到了,就返回該結果的正則表達式對象;如果沒有匹配到,則返回None
使用re.search()返回匹配到的第一個字元串的正則表達式對象,找到了就會停止匹配。因此這個函數比較適合在一個大文本中找第一個出現的字元串。
若想讓這個字元串展示出來,還需要藉助group()函數。
舉個栗子:
這個函數的作用是將正則表達式編譯為一個正則表達式對象,如果要多次使用這個正則表達式的話,可以先編譯,然後復用,使程序更高效一些,對這個對象繼續使用.match(string)就可以顯示匹配到的正則表達式對象,後續如果想要獲取具體內容的話,和上面是一眼國的,直接使用group(0)就可以啦。
如果不考慮復用的話,和re.mach(pattern, string)的效果是一樣的。
從運行結果也可以看出,re.match()和re.search()的區別,雖然二者都會返回匹配到的正則表達式對象,但是re.match()是從字元串的最開始位置開始匹配的,如果最開始的字元不匹配則會直接返回None;而re.search()則會一直往後找,直到找到第一個符合條件的字元串。
re.sub()函數用於替換字元串中的匹配項
舉個栗子:
將所有數字替換為了一個空格。
G. Python之re模塊
re模塊是python獨有的匹配字元串的模塊,該模塊中提供的很多功能是基於正則表達式實現的,
而正則表達式是對字元串進行模糊匹配,提取自己需要的字元串部分,他對所有的語言都通用。
1、字元
2、字元集
3、量詞
貪婪模式:總是嘗試匹配盡可能多的字元
非貪婪則相反,總是嘗試匹配盡可能少的字元。
{0,} 匹配前一個字元 0 或多次,等同於 * 元字元
{+,} 匹配前一個字元 1 次或無限次,等同於 + 元字元
{0,1 }匹配前一個字元 0 次或 1 次,等同於 ? 元字元
如果 () 後面跟的是特殊元字元如 (adc)* 那麼*控制的前導字元就是 () 里的整體內容,不再是前導一個字元
4、特殊分組用法表:只對正則函數返回對象的有用
5、斷言
從斷言的表達形式可以看出,它用的就是分組符號,只不過開頭都加了一個問號,這個問號就是在說這是一個非捕獲組,這個組沒有編號,不能用來後向引用,只能當做斷言。
匹配 <title>xxx</title> 中 xxx : (?<=<title>).*(?=</title>)
自己理解就是:
5、例子
(1)非
^(?!.*200).*$ ,只匹配200
^(?!.*[200|400]).*$ ,只匹配200和400
[^a-z] 反取,不含a-z字母的
(2) u4e00-u9fa5 中文
(3) r"([u4e00-u9fa5]s?[u4e00-u9fa5]+)" # 小 明 匹配這種單字中間有空格的
compile 函數用於編譯正則表達式,生成一個正則表達式( Pattern )對象,供 match() 和 search() 這兩個函數使用
match 嘗試從字元串的 起始位置 匹配一個模式,如果不是起始位置匹配成功的話,返回none。
search 掃描 整個字元串 並返回 第一個成功 的匹配。
re.match與re.search的區別:
正則表達式替換函數
替換匹配成功的指定位置字元串,並且返回替換次數,可以用兩個變數分別接受
(2) 兩個字元以上切割,放在 [ ] 中(不保留分隔符):
(3) 使用 ( ) 捕獲分組(保留分割符):
在字元串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
注意: match 和 search 是匹配一次 ,findall 匹配所有。
用法:
注意1:一旦匹配成,再次匹配,是從前一次匹配成功的,後面一位開始的,也可以理解為匹配成功的字元串,不在參與下次匹配
注意2:如果沒寫匹配規則,也就是空規則,返回的是一個比原始字元串多一位的,空字元串列表
注意3:正則匹配到空字元的情況,如果規則里只有一個組,而組後面是 * 就表示組里的內容可以是 0 個或者多過,這樣組里就有了兩個意思:
一個意思是匹配組里的內容,
二個意思是匹配組里 0 內容(即是空白)
所以盡量避免用 * 否則會有可能匹配出空字元串
正則表達式,返回類型為表達式對象的
如:<_sre.SRE_Match object; span=(6, 7), match='a'>
返回對象的,需要用正則方法取字元串,
H. python3 re模塊怎麼抓取中文類型
Python的re模塊里沒有直接匹配中文的屬性或者方法。
不過可以用re.findall+()來匹配,但是如果數據裡面有中英文,那麼就得再次匹配了。
例:
test = '<html><head>網路</head></html>'
cont = re.findall(r'<ht.*?head>(.*?)</hea',test)
print(cont)
I. Python 標准庫模塊 - re
正則表達式引擎對正則表達式文本進行編譯生成正則表達式對象,再由正則表達式對象對目標文本進行匹配,後返回匹配結果。
正則表達式中一共包含 2 中字元: 普通字元 、 元字元
匹配單個字元的元字元及其含義:
匹配重復性的元字元及其含義:
匹配位置的元字元及其含義:
分組匹配的元字元及其含義:
表示或運算的元字元:
轉義元字元:
在 Python 中使用正則表達式,我們需要藉助 re 模塊提供的強大 API,下面我們就來學習幾個 re 模塊常用的介面吧~
參數說明: findall("正則表達式", "要匹配的字元串", flags=標志1|標志2|...)
返回值:以列表形式返回匹配到的字元串。
下面,我們用 findall 返回 Python 之禪中首尾用到的反義詞:
運行結果:
當正則表達式中含有一個以上分組時, findall 返回的列表由元組構成,元組中包含每個分組匹配到的內容。如果只有一個分組,則返回由該分組匹配到的內容組所構成的列表:
match 函數返回的結果是一個 SRE_Match 對象:
SRE_Match 具有很多的屬性,比如 .string 屬性可以方便我們我獲取在匹配時輸入的字元串:
屬性 .re 可以獲取匹配時使用的編譯後的正則表達式模式:
由於默認使用了 re.UNICODE ,所以我們這里的 w 可以匹配中文字元。
屬性 .regs 則以列表的形式返回正則表達式匹配到的內容以及各個分組陪陪到的內容,不過請注意,返回的都是索引的形式:
可以使用序列切片來看一下我們的正則表達式及其中的兩個分組所匹配到的內容:
SRE_Match 對象也提供了非常多好用的方法,比如 groups 可以獲取各個分組匹配到的內容:
group 則可以靈活地獲取正則表達式或對應分組匹配到的內容:
如果使用的正則表達式定義了分組的名稱, group 還可以通過名稱獲取相應分組匹配的內容:
在定義了分組的名稱之後,還可以方便地使用 groupdict 以字典的形式返回所有分組匹配的結果:
最後需要注意的是, match 從字元串的開頭開始匹配,如果開頭不符合要求,則直接返回 None 。
與 match 匹配開頭不同, search 匹配第一個符合規則的字元串,未成功則返回 None 。參數: re.search(pattern, string, flags=0) ;返回值同 match 。
在介紹 match 的使用時,最後一個例子,由於我們在字元串前面添加了 'PYTHON' 導致 match 使用原來的正則表達式無法匹配,返回 None 。此時,使用 search 就可以迎刃而解啦:
運行結果:
小結:
參數: re.split(pattern, string, maxsplit=0, flags=0) , split 功能非常強大,以正則表達式匹配到的標志來分隔字元串,比如下面這樣一個混亂的字元串,我們要提取其中所有的數字:
下面,我們就來詳細介紹一下 split 的用法。
首先,是以單字元切割:
以分號切割時,共產生了 4 個子字元串,放在列表中返回。
下面,還是以單字元切割,但可以使用正則表達式中的 [] 來指定多種字元:
由於字元串 line 中有連續的 2 個分號,逗號或者空格,因此可以使用 [;s,]+ 來切割:
最後,上面的字元串在切割時,分隔符都沒有被保留下來,使用括弧捕獲分組,即可保留分隔符:
re.sub 提供比字元串的 replace 方法更加強大的功能:對於輸入的字元串 string ,利用正則表達式 pattern 強大的字元串處理功能,實現復雜的字元串替換處理為 repl ,返回被替換後的字元串。
下面的例子中,我們將句子中多餘的空格和數字去掉:
如果想要知道替換過程中,共發生了多少次替換,可以使用 subn :
小結:
上述的案例中,我們每次都需要傳入正則表達式,相應的函數每次在調用時,都需要編譯一次正則表達式。如果上述過程需要多次重復,那麼每次都去耗費時間編譯正則表達式是很不劃算的。
re 模塊為我們提供了 compile 函數,用來編譯正則表達式模式,返回編譯好模式。因此,可以把那些常用的正則表達式編譯成正則表達式對象,以提高效率。
格式: re.compile(pattern, flags=0) ,其中 pattern 為編譯時用的表達式字元串, flags 為編譯標志位,用於修改正則表達式的匹配方式,如:是否區分大小寫,多行匹配等。常用的 flags 有:
註:使用按位或 | 連接多個 flags 。
我們上述介紹的 re 模塊的匹配、分割、替換函數, compile 函數的返回值類提供了相應的方法,使用方式類似,只是不需要傳入正則表達式字元串而已。
由於用法幾乎一致,這里就不一一舉例啦~
貪婪模式 : * + ? {m,n} ,正則表達式的重復默認總是盡可能多得向後匹配內容。
非貪婪模式 : *? +? ?? {m,n}? ,盡可能少的匹配內容。