# 视频演示 <video width="90%" controls=""><source src="http://other.iremaker.com/69cb8315145386c90dab9ee96177f8636574a39cd0c9d9423d536071cf5fb95b.mp4?v=llKGAazl97" type="video/mp4">您的浏览器不支持 video 标签。</video> #文档讲解 <a style="text-decoration:none;" href="http://other.iremaker.com/85243afbc4e02ef9a722e7cd93a74d0132f5f507379648cfe8429eccec917e76.docx?v=FhvqmP9Puo">word文档下载 <img src="/static/images/download.png"/></a> ### 1、目标 (1)演示day1作业 (2)正则中的量词 ### 2、详解 ##### (1)day1作业 **1、请用正则将《第一本快排书》的二级标题换成`<h2 class="text-title-2">`样式** 保险起见,在替换之前,请先确认2件事: A、`<h2` 有多少个 B、`<h2` 都有什么共同点,也就是共性 《第一本快排书》有24个`<h2` 标签,只有2种的不同的格式,标黄是共性: <div align=center>![](http://img.iremaker.com/3be804b35eb1a55d1351ccaa6d815b4c04f7fbf56084533d2483d9f6fc6d6c57.jpg?v=FqOe8mo45k)</div> 简单点操作,将2种格式,用1个宽泛的正则式来替换,这个前提是替换所有的h2样式,如果只是替换部分,需要准确匹配。 将`<h2.*>` 直接替换成:`<h2 class="text-title-2">` <div align=center>![](http://img.iremaker.com/0424ff1d2b0e045a1ae3c2d3d8f4f55a83b56d12e681ceb779d28530f473abc5.jpg?v=FiZNxwPhmW)</div> <br /> 准确点操作,分2步: 先把 `<h2 id="sigil_toc_id_4"> `类型的标题,换成 `<h2 class="text-title-2">` <div align=center>![](http://img.iremaker.com/3b18fcbf0222933e19fb4d1ce8f1afebccce2b46305e56da635e5bac6c1ea3bf.jpg?v=Frwytf_UX_)</div> <br/> 再把`<h2 class="sect2" id="txt004_2">` 类型的,换成:`<h2 class="text-title-2">` <div align=center>![](http://img.iremaker.com/976f9d0d95d24e0e850ad6ae1919c9f551bc5dcfe6442041532e5ef28103ef89.jpg?v=Fmgbw90TmP)</div> <br /> **2、请用正常模式,将《第一本快排书》的所有 `class="content"` 换成 `class="bodytext"`** <div align=center>![](http://img.iremaker.com/fcf42543dc0ae844ebfed59909035f7c83f8147d6471028b770e4dddf3ff3a2d.jpg?v=FrkZsvI8Ke)</div> <br /> **3、请将该书的`txt004.xhtml` 本页面的** `<h1 class="sect1" id="txt004_1">第三章 参与新文化运动(1917—1926)的无名氏</h1>` 替换成 `<h1 class="text-title-1">第三章 参与新文化运动(1917—1926)的无名氏</h1>` <div align=center>![](http://img.iremaker.com/b3b35e506735fe09159155e8840b2c3c91da80bb81ff0187ea550fad3d927387.jpg?v=FknmcOWMom)</div> ##### (2)正则中的量词 正则的量词,就是用特殊字符(元字符)表示多少。比如咱们讲过,.匹配除了换行以外的任一字符,只有一个字,如果我想匹配多个怎么办?那就需要用到量词了。 | 元字符 | 表示的区间 | 举例 | | ------------ | ------------ | ------------ | | * | [0,+∞) |正则式zo*,可以匹配:z、zo、zoo...| | + | [1,+∞) | 正则式zo+、可以匹配:zo、zoo、zooo… | | ? | [0,1] | 正则式zo?、可以匹配: z和zo(只有这2种) | | {n} | [n,n] | 正则式zo{2}、只能匹配:zoo | | {n,m} | [n,m] |正则式zo{2,5}、只能匹配:zoo、zooo、zoooo、zooooo | | {n,} | [n,+∞) | 正则式zo{2,}、可以匹配:zoo、zooo、zooooo… | 表中能看出:量词限定的是紧挨着它的前一个字符出现的次数 细心的小伙伴会有这样的疑问:`zo*`,可以匹配`z`、`zo`、`zoo…`,匹配`zoo`时候,是不是匹配上前两个字母`zo`就停止了?如果只想匹配`zooo`中的`zoo`,改怎么办?这就是下面要讲的。 正常情况下,正则匹配跟人一样,都是贪婪的,占有欲极强,总是尽量多的匹配字符。比如:`zo*`,如果有个字符是:`zoooo`,会全匹配上。 <div align=center>![](http://img.iremaker.com/09d6eca252fb3c6e22917972f8f65f4d27140d73358976fea3ce60ccebf0397c.jpg?v=Fi3EO174Zl)</div> <br /> 其他量词,也是一样的贪婪: <div align=center>![](http://img.iremaker.com/bc1d510570852c8d47fe2f9e928dde5e5decb33157ba7a0a3597f7929c01ecaa.jpg?v=FgHfdyw83p)</div> <br /> **有2种办法解决这种贪婪匹配:** A、勾上最小匹配(epubGo暂时不支持{m,n}的最小匹配) <div align=center>![](http://img.iremaker.com/fd0d0080466df6d7ac8899eda1628e1746f99315c9a69e40913a48352fee89d7.jpg?v=Foq1rqMsLd)</div> <br /> B、在量词后面加个英文? <div align=center>![](http://img.iremaker.com/dbf8a108bffa8ef7a94f06765fdb076fd55572bc78751c572024efc3b28ec0c7.jpg?v=Ft0wS8MmJx)</div> # 3、作业 (1)《第一本精品书》有多少个格式如下的三级标题: `<h3 class="sect3" id="txt005_4">一 作为地方文艺“飘逸一 派”的晚明越中乡贤</h3>` (2) 查询《第一本精品书里》有多少张行内图?格式如下: `<img alt="img" class="picture_character" src="../Images/txt006_3.png" />`