欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 正則表達式筆記三則

正則表達式筆記三則

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

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

復制代碼 代碼如下:

#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)在我可以回答這個問題了。Perl 提供了 pos 函數(shù),可以在 /g 全局匹配中調(diào)整下次匹配開始的位置。舉例如下:
復制代碼 代碼如下:

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

其輸出結果是每兩個字母,即ab, cd, ef

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

復制代碼 代碼如下:

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

輸出結果:

復制代碼 代碼如下:

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

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

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

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

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

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

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

復制代碼 代碼如下:

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ù)的默認參數(shù)是一個匹配對象變量。這樣一來,問題就簡單了:

復制代碼 代碼如下:

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

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

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

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

標簽:西安 無錫 泰州 重慶 長沙 銅川 綿陽 宣城

巨人網(wǎng)絡通訊聲明:本文標題《正則表達式筆記三則》,本文關鍵詞  正則,表達式,筆記,三則,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式筆記三則》相關的同類信息!
  • 本頁收集關于正則表達式筆記三則的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    九一九一国产精品| 性爱在线免费视频| 欧美性三三影院| 最新中文字幕一区二区三区| 国产一区二区三区四区五区美女| 中文字幕第20页| 日韩视频免费直播| 日本麻豆一区二区三区视频| 五月天激情小说| 777午夜精品视频在线播放| 亚洲一级二级三级在线免费观看| 91av免费观看| 欧美精品久久99久久在免费线| 亚洲一级二级三级| 伊人网综合视频| 日韩欧美资源站| 久久国产夜色精品鲁鲁99| 中文字幕免费高清| 国产亚洲精品超碰| 懂色av中文一区二区三区| 色欲综合视频天天天| 一区二区三区中文字幕电影 | 秋霞成人午夜伦在线观看| 一区二区三区少妇| 精品国产伦一区二区三区观看方式| 久色婷婷小香蕉久久| 天天操天天舔天天射| 亚洲国产精品t66y| 99精品黄色片免费大全| 欧美日免费三级在线| 首页亚洲欧美制服丝腿| 中文字幕国产专区| 欧美高清在线一区| 91在线国内视频| 91精品国产综合久久香蕉的特点| 蜜臀av性久久久久蜜臀av麻豆| 欧美激情亚洲色图| 中文字幕视频一区| 国产调教打屁股xxxx网站| 日韩一区二区在线观看视频播放| 久久精品国产亚洲5555| 久艹在线观看视频| 一区二区三区免费网站| 日本高清www| 中文av一区特黄| 日韩精品xxx| 精品91自产拍在线观看一区| 国产成人精品aa毛片| 欧美日韩精品一区视频| 精品综合免费视频观看| 色综合天天综合网国产成人综合天| 亚洲国产精品久久久男人的天堂| 亚洲激情视频小说| 日韩理论片网站| 在线观看日韩精品视频| 国产精品色哟哟网站| 香蕉视频污视频| 久久精品欧美日韩精品 | 欧美激情自拍偷拍| 天天爽夜夜爽视频| 精品福利一二区| 99久久伊人精品| 日韩欧美激情在线| 国产成人在线视频免费播放| 欧美日韩在线播放三区四区| 精品一区二区三区免费| 欧美午夜精品久久久久久孕妇 | 99久久99久久精品免费看蜜桃| 欧美一级欧美一级在线播放| 国产99精品在线观看| 91精品国产综合久久精品麻豆| 国产激情一区二区三区| 在线综合+亚洲+欧美中文字幕| 国产成人一级电影| 日韩视频一区二区三区在线播放| www.欧美精品一二区| 精品福利在线导航| 午夜福利三级理论电影| 中文字幕中文字幕一区二区| 老司机福利av| 亚洲自拍都市欧美小说| 欧美美女性生活视频| 视频一区在线播放| 91国产成人在线| 国产精品一二二区| 日韩欧美国产wwwww| 91蝌蚪porny九色| 亚洲国产精品国自产拍av| 欧美bbbbb性bbbbb视频| 亚洲黄色av一区| 国产探花在线免费观看| 九九热在线视频观看这里只有精品| 欧美日韩免费不卡视频一区二区三区| 成人午夜精品一区二区三区| 精品91自产拍在线观看一区| 国产精品伦子伦| 亚洲一区二区三区中文字幕在线| 国产色无码精品视频国产| 蜜臀久久99精品久久久久宅男| 欧美日韩一区精品| 99re这里都是精品| 国产精品毛片高清在线完整版| 天堂久久精品忘忧草| 日韩精品一卡二卡三卡四卡无卡| 欧美性xxxxxx少妇| 99久久综合精品| 中文字幕日韩精品一区| 天天做夜夜爱爱爱| 国产精品自拍在线| 久久久亚洲国产美女国产盗摄| 国产高清自拍视频| 日韩成人av影视| 4438成人网| 男人网站在线观看| 亚洲国产精品久久久男人的天堂| 欧美视频一区在线观看| 91色乱码一区二区三区| 亚洲视频在线一区| 色综合久久中文综合久久97| 成人免费的视频| 国产精品福利在线播放| 中文字幕五月天| 成人精品视频.| 中文字幕在线免费不卡| 2018天天弄| www.成人在线| 一区二区欧美在线观看| 欧美综合亚洲图片综合区| 91免费版在线看| 亚洲一区二区偷拍精品| 制服丝袜国产精品| 国产激情第一页| 美女网站在线免费欧美精品| 精品国产免费久久| 日本美女xxx| 国产传媒一区在线| 国产精品久久久久精k8 | 国产一区二区在线观看视频| 久久久久综合网| 日本伦理一区二区三区| 国产不卡高清在线观看视频| 国产精品电影一区二区三区| 色成人在线视频| 男男一级淫片免费播放| 日本亚洲最大的色成网站www| 日韩精品一区二区三区swag| 在线观看福利片| 国产精品主播直播| 中文字幕一区二区不卡| 欧美性猛交xxxx乱大交退制版| 在线观看一区二区三区四区| 日韩精品1区2区3区| 亚洲精品在线网站| 国精产品久拍自产在线网站| 99在线热播精品免费| 亚洲成av人片一区二区三区| 日韩你懂的在线播放| 18啪啪污污免费网站| 波波电影院一区二区三区| 亚洲成人午夜电影| 精品第一国产综合精品aⅴ| 希岛爱理中文字幕| 美女又黄又免费的视频| 蜜桃久久精品一区二区| 欧美激情一区三区| 欧美色图片你懂的| 精品国产无码在线观看| 成人精品视频一区| 视频一区在线播放| 国产欧美精品一区二区三区四区| 91福利小视频| 中文字幕一二三四区| 成人av电影观看| 肉色丝袜一区二区| 中文av一区特黄| 欧美高清激情brazzers| 亚洲天堂岛国片| 成人在线短视频| 精品一区二区三区在线视频| 最新欧美精品一区二区三区| 欧美一区二区视频在线观看| 登山的目的在线| www.男人天堂| 成人av在线电影| 欧美aⅴ一区二区三区视频| 国产精品免费久久久久| 91精品国产综合久久久久久| 亚洲熟女少妇一区二区| 午夜不卡久久精品无码免费| 国产成人av在线影院| 五月天网站亚洲| 亚洲视频资源在线| 久久久夜色精品亚洲| 欧美日韩高清一区二区| 懂色av粉嫩av蜜臀av一区二区三区| 中国极品少妇videossexhd| 成人avav在线| 久久99在线观看| 亚洲二区在线观看| 国产精品久久久久aaaa樱花|