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

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:00:58
字體:
來源:轉載
供稿:網友

正則表達式是做文本解析工作必不可少的技能。如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標簽
更完整的正則表達式可翻閱正則表達式在線手冊:http://www.49028c.com/shouce/jiaoben/zhengze/


注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品极品尤物在线观看| 亚洲二区在线播放视频| 2020欧美日韩在线视频| 亚洲综合在线中文字幕| 亚洲精品第一国产综合精品| 成人在线中文字幕| 欧美日本国产在线| 亚洲人成免费电影| 欧美最近摘花xxxx摘花| 日韩精品黄色网| 91国语精品自产拍在线观看性色| 92国产精品视频| 久久国产精品久久久久久久久久| 久久精品成人一区二区三区| 亚洲欧美在线磁力| 久久久成人的性感天堂| 在线性视频日韩欧美| 亚洲国产精品一区二区久| 亚洲国产精品久久久久秋霞蜜臀| 欧美壮男野外gaytube| 日韩美女免费线视频| 欧美一级淫片aaaaaaa视频| 精品日本美女福利在线观看| 最新国产成人av网站网址麻豆| 欧美精品激情blacked18| 日韩精品免费看| 91精品国产91久久久久福利| 国产精品69久久久久| 国产91精品在线播放| 欧美贵妇videos办公室| 欧美精品九九久久| 久久综合亚洲社区| 国产成人精品一区二区| 国产精品视频久久| 日韩中文字幕视频| 97高清免费视频| 国产精品久久色| 国产精品成人播放| 91欧美激情另类亚洲| 久久久影视精品| 国产精品h在线观看| 久久久亚洲欧洲日产国码aⅴ| 亚洲一区精品电影| 日韩av片免费在线观看| 国产精品丝袜一区二区三区| 国产亚洲人成a一在线v站| 久久久久久久999精品视频| 日韩免费电影在线观看| 亚洲的天堂在线中文字幕| 久久久久国产精品一区| 欧美一级大片视频| 78色国产精品| 欧美大尺度在线观看| 国产在线999| 国产精品福利在线观看网址| 97视频网站入口| 久久99青青精品免费观看| 日韩精品丝袜在线| 国产色视频一区| 亚洲区一区二区| 国产91色在线免费| 欧美影院久久久| 亚洲香蕉av在线一区二区三区| 国产精品偷伦一区二区| 另类少妇人与禽zozz0性伦| 国产一区二区免费| 亚洲激情小视频| 欧美成人精品不卡视频在线观看| 国产成人aa精品一区在线播放| 狠狠色香婷婷久久亚洲精品| 欧美大片在线看免费观看| 国产婷婷97碰碰久久人人蜜臀| 欧美超级乱淫片喷水| 久久香蕉频线观| 亚洲精美色品网站| 韩国欧美亚洲国产| 日韩成人免费视频| 亚洲999一在线观看www| 欧美精品在线视频观看| 91久久在线观看| 有码中文亚洲精品| 日韩中文字幕免费看| 国产成人精品免费视频| 亚洲天堂男人天堂女人天堂| 欧美一级电影在线| 亚洲国产97在线精品一区| 96精品视频在线| 久久久在线观看| 久久精品99无色码中文字幕| 日韩美女免费线视频| 国产成+人+综合+亚洲欧洲| 日韩风俗一区 二区| 日本国产一区二区三区| 久久精品视频中文字幕| 久久久久亚洲精品成人网小说| 国产精品亚洲欧美导航| 97在线视频免费| 国产拍精品一二三| 久久天天躁狠狠躁夜夜av| 欧美乱大交xxxxx另类电影| 亚洲国产欧美一区二区三区同亚洲| 国产精品三级网站| 在线看日韩欧美| 欧美性猛交xxxx乱大交3| 国产精品高清网站| 亚洲国产一区二区三区四区| 日韩福利伦理影院免费| 97精品视频在线播放| 国产一区二区三区18| 亚洲区免费影片| 亚洲一区二区三区xxx视频| 97在线看福利| 一本色道久久88精品综合| 久久久极品av| 国产91成人在在线播放| 91精品国产自产在线| 国产97人人超碰caoprom| 97在线日本国产| 91手机视频在线观看| 精品久久在线播放| 成人www视频在线观看| 51视频国产精品一区二区| 亚洲毛片在线观看.| 日韩国产高清污视频在线观看| 91免费视频国产| 久久亚洲精品视频| 成人亲热视频网站| 亚洲欧美成人一区二区在线电影| 精品美女久久久久久免费| 欧美激情中文字幕乱码免费| 日韩小视频网址| 国产精品久久久久久av下载红粉| 精品久久久久久久久久久久久久| 亚洲女同性videos| 国产精品一区二区三| 国外成人性视频| 亚洲一区二区三区久久| 538国产精品视频一区二区| 久久手机免费视频| 国产精品三级美女白浆呻吟| 亚洲视频第一页| 国产91精品高潮白浆喷水| 国产精品久久久久久av福利软件| 欧美专区日韩视频| 久久久黄色av| 日韩av综合网站| 欧美午夜视频在线观看| 高清一区二区三区四区五区| 亚洲a级在线播放观看| 日韩亚洲一区二区| 亚洲天堂免费视频| 欧美wwwxxxx| 亚洲精品免费在线视频| 日韩最新在线视频| 日韩av不卡在线| 日韩在线视频观看正片免费网站| 91av在线视频观看| 国产成人高清激情视频在线观看| 欧美精品电影在线| 国产主播欧美精品| 2019亚洲男人天堂| www.精品av.com| 亚洲精品国产拍免费91在线| 国产成人精品日本亚洲|