pythonresubn
㈠ python replace正則怎麼用
# encoding: UTF-8
import re
s="今天是2015年10月1日國慶節,明天是2015年10月2日";
result = s.replace("2015年10月1日", "00") #只能用於字元串替換
print result;
result, number = re.subn("\d+年\d+月\d+日", "00", s) #可以用於正則的替換
print result;
print number;
㈡ 用python搜索文件夾內所有文件,並且根據名字打開其他文檔
importglob,os,re
path_a='e:\A'
path_b='e:\B'
a_files=glob.glob('%s\*'%path_a)
b_files=glob.glob('%s\*'%path_b)
forfina_files:
file_name=os.path.basename(f)
file_name_in_folder_b=re.subn(ur'd{8}_d{2}_d{2}_d{2}_','',file_name)
full_path='%s\%s'%(path_b,file_name_in_folder_b)
iffull_pathinb_files:
file_in_b=open(full_path,'r')
㈢ Python 腳本之統計基因組文件中染色體長度及N鹼基數目
re模塊是Python中的正則表達式調用模塊,在python中,通過將正則表達式內嵌集成re模塊,程序員們可以直接調用來實現正則匹配。
正則表達式的大致匹配過程是:
re模塊所支持的方法有如下:
其中,pattern為匹配模式,由re.compile生成,例如: pattern = re.compile(r'hello')
參數flag是匹配模式,取值可以使用按位或運算符』|』表示同時生效,如 re.I | re.M。可選值有:
註:以上七個方法中的flags同樣是代表匹配模式的意思,如果在pattern生成時已經指明了flags,那麼在下面的方法中就不需要傳入這個參數了。
1. re.match(pattern, string[, flags])
2. re.search(pattern, string[, flags])
3. re.split(pattern, string[, maxsplit])
4. re.findall(pattern, string[, flags])
5. re.finditer(pattern, string[, flags])
6. re.sub(pattern, repl, string[, count])
7. re.subn(pattern, repl, string[, count])
描述
注意:該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。
語法
參數
返回值
實例
以上實例輸出結果如下:
參考
https://www.cnblogs.com/chengege/p/11190782.html
https://www.runoob.com/python/att-string-strip.html
㈣ python3.6怎麼用re.sub去除\n \t \xa0
\xa0 是不間斷空白符
我們通常所用的空格是 \x20 ,是在標准ASCII可見字元 0x20~0x7e 范圍內。
而 \xa0 屬於 latin1 (ISO/IEC_8859-1)中的擴展字元集字元,代表空白符nbsp(non-breaking space)。
latin1 字元集向下兼容 ASCII ( 0x20~0x7e )。通常我們見到的字元多數是 latin1 的,比如在 MySQL 資料庫中。
有如下信息:
'T-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0,', 'V-neck\xa0\xa0V型領\xa0sleeve\xa0\xa0袖子\xa0,',1
我們如何將其中的\xz0去掉呢,試了re模塊的sub方法,發現沒有作用,於是又開始查閱相關資料,終於解決了該問題。方法如下:
>>> inputstring = u'\n Door:\xa0Novum \t '
>>> move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))
>>> output = inputstring.translate(move)
>>> output
' Door:Novum '12345
另外還有一種更簡單的方法,利用split方法:
>>> s
'T-shirt\xa0\xa0短袖圓領衫,體恤衫\xa0'
>>> out = "".join(s.split())
>>> out
'T-shirt短袖圓領衫,體恤衫'
㈤ python如何用正則匹配字元串後到行尾的所有字元
1.替換所有匹配的子串用newstring替換subject中所有與正則表達式regex匹配的子串
result, number = re.subn(regex, newstring, subject)
2.替換所有匹配的子串(使 用正則表達式對象)
rereobj = re.compile(regex) result, number = reobj.subn(newstring, subject)字元串拆分
Python字元串拆分
reresult = re.split(regex, subject)
字元串拆分(使用正則表示式對象)
rereobj = re.compile(regex) result = reobj.split(subject)匹配
下面列出Python正則表達式的幾種匹配用法:
1.測試正則表達式是否 匹配字元串的全部或部分regex=ur"..." #正則表達式
if re.search(regex, subject): do_something()
else:do_anotherthing()2.測試正則表達式是否匹配整個字元串regex=ur"...\Z" #正則表達式末尾以\Z結束
if re.match(regex, subject): do_something() else: do_anotherthing()
3. 創建一個匹配對象,然後通過該對象獲得匹配細節regex=ur"..." #正則表達式
match = re.search(regex, subject) if match: # match start: match.start() # match end (exclusive): match.end() # matched text: match.group() do_something() else: do_anotherthing()
㈥ python 中 re.sub 和 re.compile 是啥意思呀跪求大神解釋。
在python中re是一個常用的模塊,主要是通過正則表達式進行字元串處理。它的速度相對自己用 find, replace, split來說,通常更快。當然功能更強大。
正則表達式也是一種語言,所以如果通過re.compile把它編譯成對象,會速度快很多。所以我們經常看到這樣的語句
exp=re.compile("S+")
m=exp.search(bigtext)
printm.group(0)
這段話等同於
m=re.search("S+",bigtext)
printm.group(0)
re.sub則相當於字元串操作中的replace,比如
sometext=re.sub("(?isu) "," ",sometext)
上面這句話是將回車換行,變成換行。這是為了將windows下的文本文件移到linux下,防止某些軟體不兼容所做的處理。
簡單的說re.sub是做字元串替換的, re.compile是將正則表達式編譯成一個對象,加快速度,並重復使用。
㈦ Python 標准庫模塊 - re
re模塊被稱為正則表達式,其作用為,創建一個「規則表達式」,用於驗證和查找符合規則的文本,廣泛用於各種搜索引擎、賬戶密碼的驗證等。
預定義字元:
d:匹配所有的十進制數字0-9
D:匹配所有的非數字,包含下劃線
s:匹配所有空白字元(空格、TAB等)
S:匹配所有非空白字元,包含下劃線
w:匹配所有字母、漢字、數字a-z A-Z 0-9
W:匹配所有非字母、漢字、數字,包含下劃線
特殊字元:
$:匹配一行的結尾(必須放在正則表達式最後面)
^:匹配一行的開頭(必須放在正則表達式最前面)
*:前面的字元可以出現0次或多次(0~無限)
+:前面的字元可以出現1次或多次(1~無限)
?:變"貪婪模式"為"勉強模式",前面的字元可以出現0次或1次
.:匹配除了換行符" "之外的任意單個字元
|:兩項都進行匹配
[ ]:代表一個集合,有如下三種情況
[abc]:能匹配其中的單個字元
[a-z0-9]:能匹配指定范圍的字元,可取反(在最前面加入^)
[2-9] [1-3]:能夠做組合匹配
{ }:用於標記前面的字元出現的頻率,有如下情況:
{n,m}:代表前面字元最少出現n次,最多出現m次
{n,}:代表前面字元最少出現n次,最多不受限制
{,m}:代表前面字元最多出現n次,最少不受
{n}:前面的字元必須出現n次