亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

正值表達式匹配html標簽的屬性值

2020-01-20 22:07:17
字體:
來源:轉載
供稿:網友

正則表達式是做文本解析工作必不可少的技能。如Web服務器日志分析,網頁前端開發等。很多高級文本編輯器都支持正則表達式的一個子集,熟練掌握正則表達式,經常能夠使你的一些工作事半功倍。例如統計代碼行數,只需一個正則就搞定。嵌套Html標簽的匹配是正則表達式應用中一個比較難的話題,因為它涉及到的正則語法比較多,也比較難。因此也就更有研究的價值。

今天由于工作的需求,需要獲取html標簽的屬性值,立即想到了正則表達式,標簽如下:

<circle id="ap_test" cx="200" cy="2000" r="2" stroke="black" stroke-width="0" fill="red"/><circle id="ap_test" cx="201" cy="2001" r="2" stroke="black" stroke-width="0" fill="red"/><circle id="ap_test" cx="202" cy="2002" r="2" stroke="black" stroke-width="0" fill="red"/><circle id="ap_test" cx="203" cy="2003" r="2" stroke="black" stroke-width="0" fill="red"/>

需要獲取<circle />標簽的cx、cy的屬性值,想了一會寫出了一個:

$circle是上面的circle標簽的內容

preg_match_all('/</s*circle/s+[^>]*?cx/s*=/s*(/'|/")(.*?)//1[^>]*?cy/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i', $circle, $arr);var_dump($arr);

$arr[2]是cx的值 ,$arr[4]是cy的值.

下面給大家介紹下正則匹配閉合HTML標簽(支持嵌套)

任何復雜的正則表達式都是由簡單的子表達式組成的,要想寫出復雜的正則來,一方面需要有化繁為簡的功底,另外一方面,我們需要從正則引擎的角度去思考問題。關于正則引擎的原理,推薦《Mastering Regular Expression》中文名叫《精通正則表達式》。挺不錯的一本書。

OK,先確定我們要解決的問題――從一段Html文本中找出特定id的標簽的innerHTML。

這里面最大的難點就是,Html標簽是支持嵌套的,怎么能夠找到指定標簽相對應的閉合標簽呢?

我們可以這樣想,先匹配最前面的起始標簽,假設是div吧(<div),接著一旦遇到嵌套div,就“壓入堆?!?,后面如果遇到div閉合標簽了,就“彈出堆棧”。如果遇到閉合標簽的時候,堆棧里面已經沒有東西了,那么匹配結束,此結束標簽為正確的閉合標簽。

我之所以能夠這樣去思考,是因為我了解過正則的特性,我知道正則中的平衡組能夠實現我剛才說的“堆?!辈僮?。所以,如果我們要編寫復雜正則表達式,需要對正則的一些高級特性至少有所了解,這樣我們思考問題才有個方向。

================================

匹配任意閉合HTML標簽的正則表達式:

<(?<HtmlTag>[/w]+)[^>]*?>((?<Nested></k<HtmlTag>[^>]*>)|<//k<HtmlTag>>(?<-Nested>)|.*?)*<//k<HtmlTag>>

如果只想匹配div標簽,可以使用下面的正則表達式:

<(?<HtmlTag>div)[^>]*?>((?<Nested></k<HtmlTag>[^>]*>)|<//k<HtmlTag>>(?<-Nested>)|.*?)*<//k<HtmlTag>>

是的,你可以把div修改成任意你想要匹配的HTML標簽

如果想同時匹配多個HTML標簽,可以使用下面的正則表達式:
<(?<HtmlTag>(div|span|h1))[^>]*?>((?<Nested></k<HtmlTag>[^>]*>)|<//k<HtmlTag>>(?<-Nested>)|.*?)*<//k<HtmlTag>>
你還可以繼續添加更多要匹配的標簽

如果想匹配包含ID的標簽,可以使用下面的正則表達式:

<(?<HtmlTag>[/w]+)[^>]*/s[iI][dD]=(?<Quote>["']?)footer(?(Quote)/k<Quote>)[^>]*?(/>|>((?<Nested></k<HtmlTag>[^>]*>)|<//k<HtmlTag>>(?<-Nested>)|.*?)*<//k<HtmlTag>>)

這個正則匹配任意id為footer的HTML標簽

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品欧美日韩久久| 97超级碰碰碰久久久| 久久久综合免费视频| 国产精品2018| 国产激情999| 日韩电影网在线| 欧美日韩福利电影| 亚洲一级免费视频| 97香蕉超级碰碰久久免费的优势| 欧美精品一本久久男人的天堂| 亚洲一区二区三区四区在线播放| 欧美激情女人20p| 色婷婷av一区二区三区在线观看| 国产成人精品视频在线观看| 亚洲天堂色网站| 欧美成人免费小视频| 欧美大片va欧美在线播放| 国产欧美一区二区三区四区| 国产精品久久999| 欧美国产高跟鞋裸体秀xxxhd| 午夜精品99久久免费| 欧洲s码亚洲m码精品一区| 国产精品av在线| 亚洲级视频在线观看免费1级| 久久国产精品亚洲| 欧美亚洲激情视频| 亚洲伦理中文字幕| 一区二区福利视频| 日韩激情视频在线| 岛国av一区二区| 97人人爽人人喊人人模波多| 日韩精品黄色网| 欧洲成人午夜免费大片| 91av成人在线| 久热在线中文字幕色999舞| 国内久久久精品| 成人在线视频网站| 成人激情电影一区二区| 亚洲精品自在久久| 成人午夜小视频| 久久精品中文字幕电影| 精品视频—区二区三区免费| 日本精品视频在线观看| 久久手机免费视频| 国产美女精品免费电影| 国模私拍一区二区三区| 久久视频在线视频| 欧美日韩国产成人| 欧美人交a欧美精品| 国产在线视频2019最新视频| 久久精品国产69国产精品亚洲| 国产日韩综合一区二区性色av| 国产日本欧美在线观看| 国产日本欧美一区二区三区| 亚洲综合中文字幕68页| 日韩高清电影免费观看完整| 欧美高清在线观看| 国产精品久久久久av| 日韩av大片在线| 日韩最新免费不卡| 一区二区亚洲精品国产| 欧美人与性动交a欧美精品| 欧美俄罗斯乱妇| 日韩不卡在线观看| 日韩av一区二区在线| 日韩一区二区欧美| 亚洲欧洲在线播放| 久久久亚洲网站| 日本韩国在线不卡| 日韩欧美在线国产| 欧美日韩在线一区| 丝袜美腿精品国产二区| 亚洲第一色中文字幕| 一区二区欧美激情| 久久久伊人日本| 自拍视频国产精品| 国产成人综合亚洲| 欧美成人激情在线| 一区二区三区在线播放欧美| 欧美影院在线播放| 久热精品视频在线免费观看| 欧美成人激情图片网| 日韩精品视频在线观看免费| 国产成人精品优优av| 国产亚洲欧美日韩一区二区| 亚洲人成亚洲人成在线观看| 国产免费亚洲高清| 国产精品视频999| 亚州国产精品久久久| 国产国语videosex另类| 国产精品偷伦视频免费观看国产| 国产精品第一页在线| 欧美激情国产日韩精品一区18| 欧美高跟鞋交xxxxxhd| 日韩视频在线观看免费| 欧美精品一区在线播放| 日韩一区在线视频| 国产精品永久免费视频| 狠狠色狠狠色综合日日小说| 国语自产精品视频在线看一大j8| 欧美电影免费观看高清完整| 成人97在线观看视频| 欧美第一页在线| 亚洲天堂日韩电影| 美女福利视频一区| 欧美激情视频三区| 热久久视久久精品18亚洲精品| 国产精品免费电影| 久久国产天堂福利天堂| 亚洲人成啪啪网站| 成人欧美一区二区三区在线| 在线视频欧美性高潮| 丝袜一区二区三区| 久久精品国产v日韩v亚洲| 日产精品99久久久久久| 亚洲成av人乱码色午夜| 亚洲综合小说区| 最新69国产成人精品视频免费| 国色天香2019中文字幕在线观看| 国产精品久久91| 7777kkkk成人观看| 国产网站欧美日韩免费精品在线观看| 欧美日韩久久久久| 国产啪精品视频网站| 成人激情视频免费在线| 欧美精品免费播放| 日韩激情av在线播放| 亚洲第一精品久久忘忧草社区| 亚洲另类图片色| 欧美视频第一页| 国产精品久久久久久久天堂| 亚洲色图狂野欧美| 国产欧美亚洲精品| 国产精品成人av在线| 欧美综合一区第一页| 57pao国产成人免费| 亚洲国产成人在线播放| 深夜福利国产精品| 欧美成人午夜免费视在线看片| 欧美日韩中文字幕综合视频| 国产精品久久久久久久久久三级| 国产手机视频精品| 亚洲精品黄网在线观看| 91久久久久久久久久久久久| 久久视频在线直播| 国产精品中文久久久久久久| 国产精品久久在线观看| 97超碰国产精品女人人人爽| 久久精品国产69国产精品亚洲| 国产精品jizz在线观看麻豆| 亚洲成人性视频| 亚洲精美色品网站| 少妇高潮久久77777| 国产一区二区三区毛片| 91精品国产综合久久男男| 91精品视频网站| 欧美性猛交xxxx免费看久久久| 日韩国产欧美精品一区二区三区| 欧美成人合集magnet| 久久久久久久亚洲精品| 57pao国产成人免费| 成人国产精品久久久久久亚洲| 性色av一区二区咪爱| 国产成人精品久久二区二区|