当前位置:  开发笔记 > 编程语言 > 正文

是否可以定义模式并重用它来捕获多个组?

如何解决《是否可以定义模式并重用它来捕获多个组?》经验,为你挑选了1个好方法。

是否有可能定义一部分模式然后命名它,以便它可以在主模式中多次重复使用而不必再次写出来?

要绘制图片,我的模式看起来与此类似(伪正则表达式模式)

(PAT),(PAT), ... ,(PAT)

哪个PAT是冗长的模式.

要求

    不必重复模式,因为它的长度成为一个问题(目前,Notepad ++在搜索框中只允许2047个字符使用正则表达式,我很容易超过这个限制)

    每个捕获组应该能够独立于其兄弟姐妹进行匹配.例如,说我的模式([a-z]),([a-z]),([a-z])a,a,aa,b,c应匹配

我已经研究了命名第一个捕获组然后在后续捕获组中引用它,但是这个方法打破了第二个要求(即,它无法匹配a,b,c).是否有直接或间接的方法来仅使用正则表达式来满足这两个要求?

我的最终目标是能够获取和访问每个捕获组的值,以便稍后在搜索和替换框的"替换"部分中操作每个组.



1> Toto..:

为了重复一个模式,你可以使用(?n)那里n是重复组的数量.例如,您的实际模式:

(PAT),(PAT), ... ,(PAT)

可以替换为:

(PAT),(?1), ... ,(?1)

(?1)(PAT)什么样的模式PAT.

您可能有多种模式:

(PAT1),(PAT2),(PAT1),(PAT2),(PAT1),(PAT2),(PAT1),(PAT2)

可以简化为:

(PAT1),(PAT2),(?1),(?2),(?1),(?2),(?1),(?2)

要么:

((PAT1),(PAT2)),(?1),(?1),(?1)

要么:

((PAT1),(PAT2)),(?1){3}

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有