国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > HTML > 正文

面向html標(biāo)簽的正則表達(dá)式

2024-08-26 00:15:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  如何構(gòu)建一種面向 html 標(biāo)簽的正則表達(dá)式語(yǔ)法?

    在處理字符串的過(guò)程中,正則表達(dá)式有著不可替代的位置。現(xiàn)在的計(jì)算機(jī)高級(jí)語(yǔ)言中都有相應(yīng)的正則表達(dá)式支持包。

    如果我們把一個(gè)網(wǎng)頁(yè)中 html 代碼當(dāng)作一個(gè)有結(jié)構(gòu)的字符串,那么如何用一種類(lèi)似正則表達(dá)式的方式來(lái)提取想要的html標(biāo)簽(tags)呢?

    這里先不考慮如何實(shí)現(xiàn),而先考慮如何用一種類(lèi)正則表達(dá)式的方式來(lái)描述html標(biāo)簽。要取得一個(gè)html標(biāo)簽(tag),需要知道該標(biāo)簽的2類(lèi)屬性:

  1、標(biāo)簽的位置;

  2、標(biāo)簽本身的屬性;

  比如 在下面的html網(wǎng)頁(yè)中:

<html>
<body>
<div id="bodywrapper" class="wrapper">
<div id="leftwrapper" class="wrapper">
</div>
<div id="rightwrapper" class="wrapper">
<div class="column">
<div>
<div class="column">
<div>
</div>
</div>
</body>
</html>

    如果想提取上面html代碼中 class 是 column的第二個(gè) div 標(biāo)簽,那么需要我指定該div的 id 和 class 和 位置信息 ?,F(xiàn)在的問(wèn)題是:如何設(shè)計(jì)一個(gè)滿(mǎn)足上述要求的表達(dá)語(yǔ)法呢?

  比如:

    gettag:div{tag-name:div;tag-position:2;tag-class:column;tag-id:; tag-content:;}
        tag-parent{tag-name:div;tag-position:2;tag-class:column;tag-id:; tag-content:;}
        tag-child{......}

     上面這是一種 易于理解的描述式的語(yǔ)法。

      或者類(lèi)似 python的語(yǔ)法:
      gettag:div
            tag-name:
            tag-id:
            tag-position:2
            tag-class:column
            tag-content:
            tag-parent:
                   tag-name:
                   tag-id:
                   tag-position:2
                   tag-class:column
                   tag-content:
             tag-child:
                   tag-type:table
                  
           
     不知道大家有沒(méi)有更適合的語(yǔ)法表現(xiàn)形式。只要能合理的設(shè)計(jì)這個(gè)表達(dá)語(yǔ)法,那么后繼的工作就好做了。這樣做的最終目的是:程序員可以用這種表達(dá)式解析html代碼,就像處理普通的字符串那樣的方便。

  希望大家參與,多出主意,我會(huì)根據(jù)大家的反饋,完善這個(gè)語(yǔ)法,并做一個(gè)基于這個(gè)語(yǔ)法的實(shí)現(xiàn)。

  參考:

  關(guān)于正則表達(dá)式的基本介紹可以看這里:

    http://www.survivalescaperooms.com/htmldata/2006-03-16/1142469074.html

  http://www.survivalescaperooms.com/htmldata/2006-03-16/1142468929.html

    正則表達(dá)式最早是由數(shù)學(xué)家stephen  kleene于1956年提出,他是在對(duì)自然語(yǔ)言的遞增研究成果的基礎(chǔ)上提出來(lái)的。具有完整語(yǔ)法的正則表達(dá)式使用在字符的格式匹配方面上,后來(lái)被應(yīng)用到熔融信息技術(shù)領(lǐng)域。自從那時(shí)起,正則表達(dá)式經(jīng)過(guò)幾個(gè)時(shí)期的發(fā)展,現(xiàn)在的標(biāo)準(zhǔn)已經(jīng)被iso(國(guó)際標(biāo)準(zhǔn)組織)批準(zhǔn)和被open  group組織認(rèn)定。 
 
    正則表達(dá)式并非一門(mén)專(zhuān)用語(yǔ)言,但它可用于在一個(gè)文件或字符里查找和替代文本的一種標(biāo)準(zhǔn)。它具有兩種標(biāo)準(zhǔn):基本的正則表達(dá)式(bre),擴(kuò)展的正則表達(dá)式(ere)。ere包括bre功能和另外其它的概念。 
 
    許多程序中都使用了正則表達(dá)式,包括xsh,egrep,sed,vi以及在unix平臺(tái)下的程序。它們可以被很多語(yǔ)言采納,如html  和xml,這些采納通常只是整個(gè)標(biāo)準(zhǔn)的一個(gè)子集。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 扬中市| 沂南县| 临洮县| 杭锦旗| 晋宁县| 芷江| 都安| 旬阳县| 延吉市| 银川市| 中超| 台湾省| 介休市| 蒙山县| 东乌珠穆沁旗| 平凉市| 陇南市| 肇东市| 贵州省| 寿光市| 潞西市| 滨州市| 镇沅| 怀远县| 广水市| 扎鲁特旗| 曲松县| 华亭县| 新宾| 乃东县| 夹江县| 汶川县| 南江县| 嘉兴市| 嘉义市| 齐齐哈尔市| 桐乡市| 开封市| 清新县| 濮阳县| 惠水县|