<p id="34Q75D6L">点击蓝字【秋叶 Excel】</p><p id="34Q75D6M">发送【6】</p><p id="34Q75D6N">免费领 1000+ 篇 Excel 精选教程!</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F9a99ace1j00sm7baj001od200u0008xg00hv005b.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34Q75D6Q">本文作者:小爽</p><p id="34Q75D6R">本文编辑:卫星酱</p><p id="34Q75D6U">大家好,我是会一点数据处理的小爽~</p><p id="34Q75D70">前面我们讲过正则函数,了解到正则的插入、拆分用法。(见文末)</p><p id="34Q75D72">之前都是利用正则匹配模式匹配字符,比如:</p><p><blockquote id="34Q75DDU">d 匹配一个数字 w 匹配一个数字字母下划线,(在 ascii 模式下) [a-c]匹配一个 a 到 c 之间的一个字符</blockquote></p><p id="34Q75D75">但是有时会有一个特殊需求,<strong>匹配指定内容之前或之后的位置</strong>。</p><p id="34Q75D77">比如(小爽),我们要匹配括号里面的内容,就可以通过匹配位置,进而获取内容。</p><p id="34Q75D79">(位置小爽位置)</p><p id="34Q75D7D">所以今天,就来讲讲正则的匹配位置。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F6fbb4c19j00sm7baj0005d200ku007cg00hv006a.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34Q75D7I"><strong>开头结尾限定</strong></p><p id="34Q75D7L">开头结尾位置,也有对应的正则语法。</p><p id="34Q75D7N"><strong>^</strong>:用于匹配字符串的开头,表示一个模式应该出现在字符串的开头位置。</p><p id="34Q75D7P"><strong>$</strong>:在正则表达式中,表示匹配字符串的结尾位置。</p><p id="34Q75D7R">正则表达式的「匹配」有两种概念:<strong>一种是匹配字符,一种是匹配位置</strong>,这里的^,$就是匹配位置的。</p><p id="34Q75D7T">利用^$我们可以判断字符串开头结尾是否存在某个字符串。</p><p id="34Q75D7V"><strong>❶ 包含</strong></p><p id="34Q75D81">如下图所示,需要判断字符串中是否包含小爽。</p><pre></pre><br/></p><p id="34Q75D87"><strong>❷ 开头</strong></p><p id="34Q75D89">判断开头是否存在小爽。</p><pre></pre><br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F2c142bcbj00sm7bak003hd200u000hyg00hv00ao.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34Q75D8G"><strong>❸ 结尾</strong></p><p id="34Q75D8I">判断结尾是否存在小爽。</p><pre></pre><br/></p><p id="34Q75D8O"><strong>❹ 精确</strong></p><p id="34Q75D8Q">字符串是否为小爽。</p><pre></pre><br/></p><p id="34Q75D90">到这里,我们已经学会了开头结尾对应的正则语法,接下来我们来看看指定内容前后位置的正则语法。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F43349d15j00sm7bak0006d200ku007cg00hv006a.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34Q75D95"><strong>指定内容</strong><strong>前后位置</strong></p><p id="34Q75D98">如下图所示,我们需要提取中括号里的信息:</p><p id="34Q75D9D"><strong>传统做法:</strong></p><p id="34Q75D9F">借助 TextSplit 拆分函数。</p><pre></pre><br/></p><p id="34Q75D9L">当然也可以使用正则函数,通过中括号取反来提取。</p><pre></pre><br/></p><p id="34Q75D9R">不过,这里来介绍一种新的做法。</p><p id="34Q75D9T">来看看我们的字符串,可以发现,我们要提取的是中括号里的内容。</p><p id="34Q75D9V">【小爽】【爽鸭】【Excel】</p><p id="34Q75DA1">如果不匹配字符,只匹配位置,那么位置之间的内容,就是需要提取的内容。【(位置)内容(位置)】</p><p id="34Q75DA6">问题来了!!!</p><p><blockquote id="34Q75DDV">在正则表达式中,有没有只匹配位置的正则语法?</blockquote></p><p id="34Q75DA9">有的,那就是<strong>零宽断言</strong>。</p><p id="34Q75DAB">什么是零宽断言?</p><p><blockquote id="34Q75DE0">正则表达式中的零宽断言是一种特殊的结构,它在匹配的时候不会消耗字符,只是对匹配位置进行条件判断。</blockquote></p><p id="34Q75DAE">如同^代表开头,$代表结尾,零宽断言也有类似的作用,<strong>它们只匹配某些位置,在匹配过程中,不占用字符,所以被称为"零宽"</strong>。</p><p id="34Q75DAG">主要有以下四个:</p><p><ul><li id="34Q75DDF"></p><p id="34Q75DAH">(?=pattern)零宽正向先行断言</p><p></li><li id="34Q75DDG"></p><p id="34Q75DAI">(?<=pattern)零宽正向后行断言</p><p></li><li id="34Q75DDH"></p><p id="34Q75DAJ">(?!pattern)零宽负向先行断言</p><p></li><li id="34Q75DDI"></p><p id="34Q75DAK">(?零宽负向后行断言</p><p></li></ul></p><p id="34Q75DAM">看起来好复杂?</p><p id="34Q75DAR">看个例子你就懂了!</p><p id="34Q75DAT"><strong>字符串:</strong>❁小爽ω</p><p id="34Q75DAV"><strong>正则语法:</strong>(?<=❁)小爽(?=ω)</p><p><ul><li id="34Q75DDJ"></p><p id="34Q75DB1">(?<=❁)小爽左边为❁的位置。</p><p></li></ul></p><p id="34Q75DB2">巧记(?<=):正则中有个左边的小于号。也就是查找小爽左边为❁的位置。</p><p><ul><li id="34Q75DDK"></p><p id="34Q75DB4">(?=ω)小爽右边为ω的位置。</p><p></li></ul></p><p id="34Q75DB5">巧记(?=):没有小于号,也就是查找小爽右边为ω的位置。</p><p id="34Q75DB7"><strong>返回结果:</strong>小爽</p><p id="34Q75DBB">知道了零宽断言,那我们再来看公式,就不难理解:</p><pre></pre><br/></p><p id="34Q75DBH">【位置<strong>小爽</strong>位置】【位置<strong>爽鸭</strong>位置】【位置<strong>excel</strong>位置】</p><p id="34Q75DBJ"><strong>公式解析:</strong></p><p><ul><li id="34Q75DDL"></p><p id="34Q75DBL">(?<=【):指定内容左边为【的位置。</p><p></li><li id="34Q75DDM"></p><p id="34Q75DBM">.+?:匹配指定内容,.+代表除换行符之外一到多个字符,?代表非贪婪匹配。</p><p></li><li id="34Q75DDN"></p><p id="34Q75DBN">(?=】):指定内容右边为】的位置。</p><p></li></ul></p><p id="34Q75DBP"><strong>何为非贪婪匹配?</strong></p><p><ul><li id="34Q75DDO"></p><p id="34Q75DBQ">贪婪匹配是指匹配时,尽可能多地去匹配字符的方式。</p><p></li><li id="34Q75DDP"></p><p id="34Q75DBR">非贪婪匹配是指匹配时,尽可能少地去匹配字符的方式。</p><p></li></ul></p><p id="34Q75DBT">假如我们去掉?号,就是贪婪匹配,它会尽可能多的匹配,就会匹配到结尾。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F0079a88ej00sm7bal0006d200ku007cg00hv006a.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34Q75DC2"><strong>最</strong><strong>后的话</strong></p><p id="34Q75DC5">敲黑板:</p><p id="34Q75DCA">本文中,小爽主要带领大家了解正则表达式中比较难的匹配位置。</p><p id="34Q75DCC">其中,我们了解到:</p><p><ul><li id="34Q75DDQ"></p><p id="34Q75DCD">^:匹配开头位置</p><p></li><li id="34Q75DDR"></p><p id="34Q75DCE">$:匹配结尾位置</p><p></li><li id="34Q75DDS"></p><p id="34Q75DCF">零宽断言:条件位置匹配(?<=,?=)</p><p></li><li id="34Q75DDT"></p><p id="34Q75DCG">非贪婪模式:?尽可能少的匹配</p><p></li></ul></p><p id="34Q75DCI">文章比较难,但是掌握了匹配字符和位置,就相当于掌握了正则语法。</p><p id="34Q75DCK">正则表达式是匹配模式,要么匹配<strong>字符</strong>,要么匹配<strong>位置</strong>。</p><p id="34Q75DCM">关于匹配字符的文章大家可以戳:</p><p id="34Q75DCQ">大家在工作中还遇到过哪些 Excel 问题,也可以在留言区中聊聊~</p><p id="34Q75DCS">说不定就成为我们后面的选题方向了。</p><p id="34Q75DD0">如果你想变得更优秀,提升 Excel 水平,增强职场竞争力。</p><p id="34Q75DD1">快来加入<strong>《秋叶 Excel 3 天集训营》</strong>,和 500 强企业培训讲师拉登Dony 一起学习更多高效技巧!<br/></p><p id="34Q75DD2"><strong>不限年龄!不限岗位!</strong><strong>不限基础!</strong><strong>都可以学!</strong></p><p id="34Q75DD3">课程原价 99 元</p><p id="34Q75DD4"><strong>现在</strong><strong>扫码</strong></p><p id="34Q75DD5">不仅<strong>免费报名</strong></p><p id="34Q75DD6">还送</p><p id="34Q75DD7"><strong><strong>100+套精选 Excel 模板</strong></strong></p><p id="34Q75DD8"><strong><strong>35 个常用函数说明手册</strong></strong></p><p id="34Q75DD9"><strong>学 Excel,提升办公效率</strong></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1031%2F3ce21c83j00sm7bal000nd200u00076g00hv0049.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/153047.html