一、需求 使用 rime.txt 中柯勒律治的诗文作为示例文本,通过正则表达式为普通文本添加 HTML5 标签。...正则表达式 ^(.*)$ 匹配原文本每一行,并将匹配结果放到一个捕获组中。 只替换第一行。 添加 html、head、title、body、h1 等标签,其中用 $1 引用捕获组。 2....替换所有匹配项。 添加 h2、/h2 标签,其中用 $1 引用捕获组。 4. 添加段落标签 用如下 regexp_replace 函数添加段落标签。...替换所有匹配项。 给两个段落添加 p、/p 标签,其中用 $1 引用捕获组。 5. 添加换行标签 用如下 regexp_replace 函数标记多行诗文。...替换所有匹配项。 在每行诗文后添加换行标签 ,其中用 $1 引用捕获组。 6. 添加空行标签 用如下两层嵌套 regexp_replace 函数为空行添加标签。
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。...正则:^ 锚定行的开始 如:'^grep'匹配所有以grep开头的行。 $ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 ....*一起用代表任意字符。 [] 匹配一个指定范围内的字符 如'[Gg]rep'匹配Grep和grep。 ...(..)标记匹配字符 如'(love)',love被标记为1。 \锚定单词的开始 如:'\替换成aaa,执行操作是grep "aaa" file。
3.hl=zh-CN 这个是在设定地图上除了地图图片以外的诸如控件名称、版权声明、使用提示等所需要显示文本的语言版本时候用的,假如没有指定这个参数就使用 API 的默认值,对itu.google.com...在标记图标之上打开地图信息窗口。信息窗口的内容显示为包含 HTML 文本的字符串。仅适用于 GInfoWindowOptions.maxWidth 选 项。...(自 2.88 开始建议不要使用) 6.getLatLng() GLatLng 如构造函数或 setLatLng() 所设置的,返回此标记锚定的地理坐标。...(自 2.88 开始) 7.setPoint(point) none 设置此标记所锚定点的地理坐标。...(自 2.88 开始建议不要使用) 8.setLatLng(point) none 设置此标记所锚定点的地理坐标。
如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。...& #保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。 \< #锚定单词的开始,如:/\<love/匹配包含以love开头的单词的行。...常用命令 s 替换文本(匹配) #在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。...$ sed 's/^192.168.0.1/&localhost/' example #love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。...i\: 在当前行上面插入文本 c: 用新的文本改变本行的文本 q: 退出Sed r: 从file中读行 w: 表示把行写入一个文件 (W: 追加) =: 打印当前行号码 #: 把注释扩展到下一个换行符以前
awk、sed、grep是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。...三者的功能都是处理文本,但侧重点各不相同,grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。...5、-i参数 sed -i '4s/a/A/g' test.txt -i 直接修改文件内容 ,替换修改会保存到源文件中。 4s指的是进行第四行替换, g代指的全局替换 将a替换成A。...test.txt 9.1 打印出小写字母的行 grep [a-z] test.txt 9.2 打印出大写字母的行 grep [A-Z] test.txt 10、\关键字 作用:打印 \关键字 标记匹配字符...(^锚定行的开始 $锚定行的结束)。 11、\< 作用:锚定单词开始行 grep "\<fl" test.txt 列出以关键字开头的字符串所在行。
默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据 3. sed 与 vi 的区别 vi 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本...6.1.1 sed s 格式 s/pattern/replacement/flags flags 标记 功能 n 1~512 之间的数字 表示指定要替换的字符串出现第几次时才进行替换,例如,一行中有...6 个 A,但用户只想替换第二个 A,这是就用到这个标记; g 对数据中所有匹配到的内容进行替换 如果没有 g,则只会在第一次匹配成功时做替换操作。...8.2 用文本模式指定行区间 sed 允许指定文本模式来过滤出命令要作用的行 格式: /pattern/command 二.awk awk 这里是最常用的几个操作例子: 三.grep 功能:模式匹配语言...位置锚定: ^ :锚定行首 :锚定行尾。技巧:"^ \b或\锚定单词的词首。
Dom操作的分类:DOM Core,html-DOM,CSS-DOM 查找节点: 查找属性节点(通过jq选择器),操作属性节点(attr(‘属性名’,’属性值’)), 操作文本节点(text())读/写...注意克隆后节点的id属性,避免id重复 clone(true):复制内容,也复制行为 替换节点:xxx.replace(a)用xxx把a替换掉 前后宾语调换:a.replaceWith(xxx)将a替换成...xxx 节点互换需要先克隆节点 包裹节点:warp() 将指定节点用其他标记包裹起来,该方法对于需要在文档中插入额外的结构化标记非常有用。...将所有的元素进行单独包裹 wrap(“”) wrapAll() 将所有匹配的元素用一个元素来包裹, wrapAll(“”) wrapInner()包裹指定元素中的子内容(包括文本节点) find()方法...:查找子节点,返回值为子节点对应的jq对象 var text=$trNode.find(“te:first”).text();//获取tr的第一个td的文本节点的文本值
Dom操作的分类:DOM Core,html-DOM,CSS-DOM 查找节点: 查找属性节点(通过jq选择器),操作属性节点(attr(‘属性名’,’属性值’)), 操作文本节点(text())读/...注意克隆后节点的id属性,避免id重复 clone(true):复制内容,也复制行为 替换节点:xxx.replace(a)用xxx把a替换掉 前后宾语调换:a.replaceWith(xxx)将a替换成...xxx 节点互换需要先克隆节点 包裹节点:warp() 将指定节点用其他标记包裹起来,该方法对于需要在文档中插入额外的结构化标记非常有用。...将所有的元素进行单独包裹 wrap(“”) wrapAll() 将所有匹配的元素用一个元素来包裹, wrapAll(“”) wrapInner()包裹指定元素中的子内容(包括文本节点) find()方法...:查找子节点,返回值为子节点对应的jq对象 var text=$trNode.find(“te:first”).text();//获取tr的第一个td的文本节点的文本值
HTML DOM模型 元素的位置称为节点。不仅元素获得节点,而且元素和文本的属性也有属于它们自己的节点(属性节点和文本节点)。 DOM 文档 DOM 文档是网页中所有其他对象的所有者。...按标签名称获取元素 还可以用 getElementsByTagName() 方法按标记名称获取元素。..." 在这里将 h1 标记放入所有已存在的 div 中。 更改属性的值 还可以用 DOM 更改属性的值。...替换元素 现在让我们来看看怎样替换一个项目。...下面列出了一些比较重要的事件: 鼠标点击 页面加载 鼠标移动 输入字段更改 分配事件 可以用标记上的属性直接在 HTML 代码中定义事件。
2.5 包裹节点wrap(html|element|fn)方法 概述: 把所有匹配的元素用其他元素的结构化标记包裹起来。...当HTML标记代码中的元素包含文本时无法使用这个函数。因此,如果要添加文本应该在包裹完成之后再行添加。...匹配的元素(以及他们的同辈元素)会在DOM结构上替换他们的父元素。 <!...(htm|element|fnl)方法 概述 将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来 这个函数的原理是检查提供的第一个元素(它是由所提供的HTML标记代码动态生成的),并在它的代码结构中找到最上层的祖先元素...方法:replaceAll(selector),用匹配的元素替换掉所有 selector匹配到的元素。
“”(双引号) 软转义,其内部只允许出现特定的shell 元字符:$用于参数替换 `(反单引号,esc键下面)用于命令替换 \(反斜杠) 又叫转义,去除其后紧跟的元字符或通配符的特殊意义 举例:...比如通配符可以用*来匹配任意字符,而正则表达式不行,他只匹配任意长度的前面的字符。...我们利用这些返回值就可进行一些自动化的文本处理工作。 2. grep正则表达式元字符集(基本集) ^ :锚定行的开始 如:‘^grep’匹配所有以grep开头的行。...*一起用代表任意字符。 [] :匹配一个指定范围内的字符,如‘[Gg]rep’匹配Grep和grep。...:标记匹配字符,如‘love’,love被标记为1。 \锚定单词的开始,如:‘\<grep’匹配包含以grep开头的单词的行。
可以上报,同时可以移除dom.parentNode.removeChild(dom); 但这样容易造成误伤,因为正常页面中可能有外部链接,或者一些纯文本url。...dom.outerHTML) { return; //e不是一个dom,只是插入一段文本 } var imgList = (dom.nodeName.toUpperCase...那么做个折衷,我们继续用最初的纯文本正则匹配url的方式,但跳过纯文本的情况(例如修改div的内容,替换为一段文本),只检查插入dom的情况。 具体方法是 if (!...dom.outerHTML) { return; //e不是一个dom,只是插入一段文本 } 回到刚才第一点的问题,监测第一点的情况,可以用一样的做法。...参数标记,已经尝试过。
)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。....* # 一起用代表任意字符。 [] # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。...\(..\) # 标记匹配字符,如'\(love\)',love被标记为1。 \锚定单词的开始,如:'\文本在哪些文件中: grep -l "text" file1 file2 file3... grep递归搜索文件 在多级目录中对文本进行递归搜索: grep "text" ....echo "bbb" > file2 echo "aaa" > file3 grep "aaa" file* -lZ | xargs -0 rm # 执行后会删除file1和file3,grep输出用-
的部分,原本希望让不熟悉深度优先算遍历的读者先关注和感受一下遍历的基本流程,所以演示用的DOM节点只包含了类名和文本内容,结构简单,在复现DOM结构时直接拼接字符串在控制台显示出来的方式。...child.render()//如果子节点是元素,则递归构建 : document.createTextNode(child);//如果是文本则生成文本节点 el.appendChild...历,并为每个节点添加索引 新旧节点的tagName或者key不同 表示旧的节点需要被替换,其子节点也就不需要遍历了,这种情况的处理比较简单粗暴,打补丁阶段会直接把整个旧节点替换成新节点。...算法正常工作,应该会检测出如下的区别: 1.ul标签上增加ap="test"属性 2.li第1个标签修改了文本节点内容并增加了新属性 3.第2个节点修改了内容 4.li第3个元素替换为div元素 5.flex1...所在标签的fx属性值发生了变化 /*由于深度优先遍历时会按访问次序对节点增加索引代号,所以上述变化会相应转变为类似于如下标记形式*/ patches = { '2':[{type:'新增属性',
\G 否 在前一个m//g匹配结束位置时为true \h 是 匹配所有水平制表符 \H 是 匹配除水平制表符以外的所有字符 \k 是 匹配命名捕获分组,也写作\k’NAME’ \K 否 使\K左边的文本不匹配...(不是整个字符串为大写) \U — 转为大写(而不是首字母大写),直到\E结束 \v 是 匹配任何垂直制表符 \V 是 匹配除垂直空白符以外的任何字符 \w 是 匹配任何”单词”字符(字母,数字,组合标记和连接符号...为了清晰的查看它的运行原理,可以配合pos函数来获取当前文本匹配的位置。...\d)表示当前字符的左边不是一个数字时就满足条件 关于"环视"锚定,最需要注意的一点是匹配的结果不占用任何字符,它仅仅只是锚定位置。...例如字符串”aa1122ccbb”,用正则表达式a.*c去匹配这个字符串,其中的.*将直接从第二个字母a开始匹配到最结尾的b,因为从第二个字母a开始到最后一个字母b都符合.*的匹配模式。
在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的 文本。许多程序设计语言都支持利用正则表达式进行字符串操作。 正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。...而grep和egrep同属于文本搜索工具,可根据用户指定的文本模式(搜索条件)对目标文件进 行逐行搜索,显示能匹配到的行。...用法上grep –E等同于egrep,与grep和egrep相似的文本搜索工具还有fgrep,因不支持使用正则表达式,所以不再单独介绍。...*:任意长度的任意字符 3.位置锚定: ^:行首锚定(写在模式最左侧)$:行尾锚定(写在模式最右侧)^$:空白行\锚定(出现于单词左侧)\>,/b:词尾锚定(出现于单词右侧)(注:不包含特殊字符的连续字符组成的串叫单词...: 0或1次+:至少1次{m}: m次{m,n}:至少m次,至多n次{m,}:至少m次{0,n}:至多n次 3.位置锚定: ^:行首锚定$:行尾锚定\锚定\>,\b:词尾锚定^$,^[[:
简介 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。...4.规则表达式: grep的规则表达式: ^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。....* #一起用代表任意字符。 [] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。...\(..\) #标记匹配字符,如'\(love\)',love被标记为1。 \锚定单词的开始,如:'\ file2 echo "aaa" > file3 grep "aaa" file* -lZ | xargs -0 rm #执行后会删除file1和file3,grep输出用-
DOM规定文档中的每个成分都是一个节点(Node),可以说HTML文档是由节点构成的集合,常见DOM节点有: 文档节点(Document):代表整个文档 元素节点(Element):文档中的一个标记 文本节点...(Text):标记中的文本 属性节点(Attr):代表一个属性,元素才有属性 DOM节点类型 NodeType属性来表明节点类型,下面列举12中节点类型 节点类型 描述 1 Element 代表元素...DOM节点关系 nodeType 返回节点类型的数字值(1~12) nodeName 元素节点:标签名称(大写)、属性节点:属性名称、文本节点:#text、文档节点:#document nodeValue...insertBefore() 参照节点之前插入节点,两个参数:要插入的节点和参照节点 insertAfter() 参照节点之后插入节点,两个参数:要插入的节点和参照节点 replaceChild() 替换节点...,两个参数:要插入的节点和要替换的节点(被移除) removeChild() 移除节点 cloneNode() 克隆,一个布尔值参数,true为深拷贝,false为浅拷贝 importNode() 从文档中复制一个节点
领取专属 10元无门槛券
手把手带您无忧上云