REGEX - 指定组,分组顺序

时间:2016-11-20 10:43:45

标签: regex backreference regex-group

当我按如下方式编写正则表达式时:

/(.*)/(.*)

来自字符串

/aaa/bbb/ccc

我得到小组:

#1  aaa/bbb
#2  ccc

但我希望它像:

#1  aaa
#2  bbb/ccc

如何更改分组顺序?

1 个答案:

答案 0 :(得分:2)

基本上有两种方法可以达到这个目的:

  1. 懒惰匹配 - 类似于/(.*?)/(.*)
  2. .*匹配贪婪,所以第一个.*首先匹配(=字符串的提醒),然后回溯直到正斜杠可以匹配。惰性匹配反过来工作,.*?匹配尽可能少(=无),然后展开直到斜杠可以匹配。

    1. 负字符类匹配 - 如/([^/]*)/(.*)
    2. 正如我们所知,我们希望在正斜杠之前匹配所有内容,我们可以使用正斜杠被否定的字符类,然后再次匹配贪婪。这是更高效的,因为您可以一步完成匹配,而不是通过延迟匹配扩展您的模式。

相关问题