亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識(shí)庫 > 正則表達(dá)式筆記三則

正則表達(dá)式筆記三則

熱門標(biāo)簽:自己做的電銷機(jī)器人 浙江營(yíng)銷外呼系統(tǒng)有哪些 山東外呼系統(tǒng)聯(lián)系方式 哈爾濱公司外呼系統(tǒng)代理 地圖標(biāo)注店鋪地圖標(biāo)注酒店 淄博市張店區(qū)地圖標(biāo)注 惠安地圖標(biāo)注 遼寧秒客來電話機(jī)器人 上海銷售電銷機(jī)器人軟件
首字母大小寫無關(guān)模式
有一段時(shí)間,我在寫正則表達(dá)式來匹配Drug關(guān)鍵字時(shí),經(jīng)常寫出 /viagra|cialis|anti-ed/ 這樣的表達(dá)式。為了讓它更美觀,我會(huì)給關(guān)鍵詞排序;為了提升速度,我會(huì)使用 /[Vv]iagra/ 而非/viagra/i ,只讓必要的部分進(jìn)行大小寫通配模式。確切地說,我是需要對(duì)每個(gè)單詞的首字母進(jìn)行大小寫無關(guān)的匹配。

我寫了這樣的一個(gè)函數(shù),專門用來批量轉(zhuǎn)換。

復(fù)制代碼 代碼如下:

#convert regex to sorted list, then provide both lower/upper case for the first letter of each word
#luf means lower upper first

sub luf{
# split the regex with the delimiter |
my @arr=sort(split(/\|/,shift));

# provide both the upper and lower case for the
# first leffer of each word
foreach (@arr){s/\b([a-zA-Z])/[\l$1\u$1]/g;}

# join the keyword to a regex again
join('|',@arr);
}

print luf "sex pill|viagra|cialis|anti-ed";
# the output is:[aA]nti-[eE]d|[cC]ialis|[sS]ex [pP]ill|[vV]iagra

控制全局匹配下次開始的位置

記得jyf曾經(jīng)問過我,如何控制匹配開始的位置。嗯,現(xiàn)在我可以回答這個(gè)問題了。Perl 提供了 pos 函數(shù),可以在 /g 全局匹配中調(diào)整下次匹配開始的位置。舉例如下:
復(fù)制代碼 代碼如下:

$_="abcdefg";
while(/../g)
{
print $;
}

其輸出結(jié)果是每?jī)蓚€(gè)字母,即ab, cd, ef

可以使用 pos($_)來重新定位下一次匹配開始的位置,如:

復(fù)制代碼 代碼如下:

$_="abcdefg";
while(/../g)
{
pos($_)--; #pos($_)++;
print $;
}

輸出結(jié)果:

復(fù)制代碼 代碼如下:

pos($_)--: ab, bc, cd, de, ef, fg.
pos($_)++: ab, de.

可以閱讀 Perl 文檔中關(guān)于 pos的章節(jié)獲取詳細(xì)信息。

散列與正則表達(dá)式替換
《effective-perl-2e》第三章有這樣一個(gè)例子(見下面的代碼),將特殊符號(hào)轉(zhuǎn)義。
復(fù)制代碼 代碼如下:

my %ent = { '' => 'amp', '' => 'lt', '>' => 'gt' };
$html =~ s/([>])/$ent{$1};/g;

這個(gè)例子非常非常巧妙。它靈活地運(yùn)用了散列這種數(shù)據(jù)結(jié)構(gòu),將待替換的部分作為 key ,將與其對(duì)應(yīng)的替換內(nèi)容作為 value 。這樣只要有匹配就會(huì)捕獲,然后將捕獲的部分作為 key ,反查到 value 并運(yùn)用到替換中,體現(xiàn)了高級(jí)語言的效率。

不過,這樣的 Perl 代碼,能否移植到 Python 中呢? Python 同樣支持正則,支持散列(Python 中叫做 Dictionary),但是似乎不支持在替換過程中插入太多花哨的東西(替換行內(nèi)變量?jī)?nèi)插)。

查閱 Python 的文檔,(在 shell 下 執(zhí)行 python ,然后 import re,然后 help(re)),:

復(fù)制代碼 代碼如下:

sub(pattern, repl, string, count=0)
Return the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in string by the
replacement repl. repl can be either a string or a callable;
if a string, backslash escapes in it are processed. If it is
a callable, it's passed the match object and must return
a replacement string to be used.

原來 python 和 php 一樣,是支持在替換的過程中使用 callable 回調(diào)函數(shù)的。該函數(shù)的默認(rèn)參數(shù)是一個(gè)匹配對(duì)象變量。這樣一來,問題就簡(jiǎn)單了:

復(fù)制代碼 代碼如下:

ent={'':"lt",
'>':"gt",
'':"amp",
}

def rep(mo):
return ent[mo.group(1)]

html=re.sub(r"([>])",rep, html)

python 替換函數(shù) callback 的關(guān)鍵點(diǎn)在于其參數(shù)是一個(gè)匹配對(duì)象變量。只要明白了這一點(diǎn),查一下手冊(cè),看看該種對(duì)象都有哪些屬性,一一拿來使用,就能寫出靈活高效的 python 正則替換代碼。

標(biāo)簽:西安 無錫 泰州 重慶 長(zhǎng)沙 銅川 綿陽 宣城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式筆記三則》,本文關(guān)鍵詞  正則,表達(dá)式,筆記,三則,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《正則表達(dá)式筆記三則》相關(guān)的同類信息!
  • 本頁收集關(guān)于正則表達(dá)式筆記三則的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品久久久久久中文字幕一区| 九九久久国产精品| 麻豆网站在线看| 成人免费网站视频ww| 九九免费精品视频| 99久久精品费精品国产一区二区| 99热热久久| 欧美激情在线精品video| 超级乱淫黄漫画免费| 成人影院久久久久久影院| 日韩欧美一二三区| 日韩一级黄色大片| 日韩专区一区| 999精品在线| 色综合久久天天综线观看| 精品国产三级a∨在线观看| 亚洲精品久久玖玖玖玖| 国产一区二区精品久久| 国产91精品露脸国语对白| 黄视频网站免费观看| 欧美大片毛片aaa免费看| 欧美激情在线精品video| 国产国语对白一级毛片| 欧美爱色| 国产不卡精品一区二区三区| 欧美a级片免费看| 欧美日本免费| 日本伦理片网站| 99久久精品国产国产毛片| 超级乱淫黄漫画免费| 成人a级高清视频在线观看| 四虎影视库国产精品一区| 色综合久久天天综线观看| 美国一区二区三区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久精品人人做人人爽97| 国产网站在线| 精品国产一区二区三区国产馆| 日韩男人天堂| 日韩中文字幕一区| 色综合久久天天综合观看| 日韩专区一区| 欧美a免费| 99热精品一区| 欧美1卡一卡二卡三新区| 欧美国产日韩久久久| 高清一级片| 亚洲 欧美 91| 国产不卡在线播放| 成人高清视频免费观看| 青青久久网| 99热热久久| 国产成人啪精品| 成人a级高清视频在线观看| 午夜激情视频在线播放| 日本在线www| 欧美激情一区二区三区在线 | 亚久久伊人精品青青草原2020| 欧美爱色| 精品久久久久久影院免费| 精品久久久久久影院免费| 日本免费看视频| 日韩一级黄色大片| 日韩欧美一二三区| 国产一区二区精品尤物| 日韩在线观看视频黄| 国产原创中文字幕| 亚洲第一页色| 午夜在线亚洲| 色综合久久天天综合观看| 一级女性全黄生活片免费| 日韩av东京社区男人的天堂| 黄视频网站在线免费观看| 欧美大片毛片aaa免费看| 亚洲天堂在线播放| 成人免费观看的视频黄页| a级毛片免费全部播放| 成人免费观看网欧美片| 999久久狠狠免费精品| 国产视频一区二区在线观看| 日本特黄一级| 精品视频免费看| 黄色短视频网站| 亚洲第一页色| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 九九九国产| 色综合久久天天综线观看| 免费国产在线观看不卡| 国产视频在线免费观看| 美女免费精品视频在线观看| 韩国三级视频网站| 欧美激情一区二区三区视频| 中文字幕一区二区三区 精品| 久久精品人人做人人爽97| 国产91丝袜高跟系列| 国产精品免费精品自在线观看| 四虎影视库国产精品一区| 91麻豆高清国产在线播放| 成人免费福利片在线观看| 美女免费黄网站| 麻豆系列 在线视频| 久久国产精品只做精品| 日韩在线观看视频网站| 久久久成人影院| 韩国三级香港三级日本三级la| 欧美a级片免费看| 成人a大片高清在线观看| 精品国产香蕉在线播出| 欧美电影免费看大全| 毛片电影网| 日本在线www| 国产不卡高清| 欧美α片无限看在线观看免费| 欧美电影免费看大全| 亚洲天堂在线播放| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久精品免视看国产明星| 九九久久99| 欧美大片毛片aaa免费看| 久久精品免视看国产明星| 日本在线www| 亚洲第一页色| 麻豆网站在线看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 色综合久久天天综线观看| 日韩一级精品视频在线观看| 日本免费乱人伦在线观看| 国产视频在线免费观看| 欧美日本韩国| a级精品九九九大片免费看| 日韩男人天堂| 国产一区二区精品| 久久精品人人做人人爽97| 亚洲 男人 天堂| 国产不卡精品一区二区三区| 亚洲精品中文一区不卡| 黄视频网站免费观看| 国产一区国产二区国产三区| 国产不卡在线播放| 黄色福利片| 成人免费一级毛片在线播放视频| 成人在免费观看视频国产| 日日日夜夜操| 国产原创中文字幕| 九九久久国产精品| 国产成人精品综合| 久久精品人人做人人爽97| 欧美α片无限看在线观看免费| 久久国产精品自由自在| 精品国产一区二区三区久久久狼| 中文字幕一区二区三区 精品| 91麻豆国产级在线| 天天做人人爱夜夜爽2020 | 91麻豆高清国产在线播放| 精品国产一级毛片| 韩国三级视频网站| 999精品在线| 国产91精品一区| 国产一区二区精品尤物| 免费国产一级特黄aa大片在线| 天天色色色| 97视频免费在线| 日本在线不卡免费视频一区| 四虎影视库国产精品一区| 可以在线看黄的网站| 日本特黄特色aaa大片免费| 午夜激情视频在线播放| 天天色色色| 九九九国产| 香蕉视频久久| 国产成人女人在线视频观看 | a级毛片免费全部播放| 国产成人女人在线视频观看 | 日韩在线观看免费| 国产成人精品综合在线| a级毛片免费全部播放| 九九久久99| 麻豆网站在线看| 韩国毛片基地| 深夜做爰性大片中文| 国产网站免费观看| 黄视频网站免费观看| 欧美1卡一卡二卡三新区| 免费一级片在线观看| 国产不卡精品一区二区三区| 黄视频网站在线观看| 国产视频在线免费观看| 91麻豆精品国产自产在线| 成人高清视频免费观看| 四虎影视库国产精品一区| 精品国产一区二区三区久久久狼| 国产91精品露脸国语对白| 精品视频免费看| 欧美另类videosbestsex高清| 成人影院久久久久久影院| 欧美a免费| 国产麻豆精品视频| 国产极品精频在线观看| 欧美a免费| 国产欧美精品午夜在线播放|