如何在替换角色之前重复捕获

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在替换角色之前重复捕获相关的知识,希望对你有一定的参考价值。

我花了最近两天的时间来找到一个正则表达式,用左下角替换每个点。

表达式是:

name.of.the.film.(year).codec.quality. ... .extension

其中:

  • (year)匹配((d){4})
  • name.of.the.film.匹配([^.]+.)+(可能是name.of.name.of.the.film.name.of.the.film.

我试过^(([^.]+(.))+)(我能够捕捉括号前的最后一点,因为据我所知,重复捕捉只保留最后一场比赛。但是如何捕捉每一个点匹配。

[编辑]如下面的评论中所述,表达式中可能出现几个左括号。我必须在第一个左括号之前替换点。

答案

这应该符合您的要求:

/[.](?=.*()/g

一个点,后跟任何以左括号终止的字符串的正向前瞻。

替换演示:https://regex101.com/r/PEur1t/1

编辑:如果括号中出现多次字符串,这可能无法给出预期的结果,因为它会将每个点替换为最后一个左括号。因为在没有任何其他假设的情况下,不太可能成功地理解哪一个是期望的那个,我现在假设年份将是一个四位数的字符串:

/[.](?=.*(d{4})/g

但是:ぁzxswい

以上是关于如何在替换角色之前重复捕获的主要内容,如果未能解决你的问题,请参考以下文章

替换 Viewpager 中的片段 [重复]

如何在片段中从相机捕获图像,

用片段替换某些东西

如何在 ipad 中禁用屏幕捕获 [重复]

如何在android studio中用另一个片段替换一个片段

小片段中的 ORA-06512 [重复]