用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』

Posted 奇妙InDesign

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』相关的知识,希望对你有一定的参考价值。


当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』 用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』

敲 重点

贪婪匹配

贪婪匹配:是指在整个表达式匹配成功的前提下,尽可能多的匹配。

非贪婪匹配:是指匹配到结果就好,就少的匹配字符。

默认是贪婪匹配。


元字符解释


元字符必须在英文状态下输入

元字符必须在英文状态下输入

元字符必须在英文状态下输入

.

表示任意字符


{m}

匹配 m 个在它之前的那个字符或表达式


例:

.{5}表示匹配5个任意字符

用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』


{m,}

匹配最少m个,最多无限个字符或表达式

(遇到强制回车符、段落符号等特殊符号会停止匹配,也就是说只能在一个段落中进行匹配)


{m,n}

匹配最少m个。最多n个字符或表达式


*

匹配零个多个在它之前的那个字符或表达式


+

匹配一个多个在它之前的那个字符或表达式


匹配零个一个在它之前的那个字符或表达式



贪婪匹配


直接上图吧

用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』


就是尽可能的匹配个多的内容,如上面的那个正则


(.+)

(括号是全角的,不能算做元字符)


匹配第一个左圆括号开始,一直匹配到这一段的最后一个右圆括号。


而不是匹配到第一个右圆括号就停止了。



非贪婪匹配


用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』


(.+?)

这个表达式就是一个非贪婪匹配

点表示任意字符,加号表示一个或多个字符,在后面加一个问号就表示在匹配到最少的字符情况下后面会有一个右圆括号。



用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』


在举个例子

这是我在网上找的《牡丹亭》的一个片段。要把所有加括号的都变成蓝色。


用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』


使用非贪婪匹配主要用在查找首尾相同但中间不同的内容中,比如各种成对的括号……


所有贪婪匹配加上问号就会变成非贪婪匹配了,嗯,就这样吧,希望我没把你弄晕用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』




试一试

你能抓住下面那条鱼吗?

以上是关于用InDesign的你还不懂的贪婪和非贪婪匹配?OUT啦『GREP正则表达式』的主要内容,如果未能解决你的问题,请参考以下文章

贪婪和非贪婪

python基础:re模块匹配时贪婪和非贪婪模式

python基础:re模块匹配时贪婪和非贪婪模式

简单聊一聊正则表达式中的贪婪匹配和非贪婪匹配

正则表达式贪婪和非贪婪模式

python 正则贪婪模式和非贪婪模式