elasticsearch,Java,Regex,elasticsearch" /> elasticsearch,Java,Regex,elasticsearch" />

Java 正则表达式:查找模式的最后一次出现

Java 正则表达式:查找模式的最后一次出现,java,regex,elasticsearch,Java,Regex,elasticsearch,我试图找到一个正则表达式,它将匹配最后一次出现的特定语言标记,之后再也找不到其他语言标记 特定语言标记:\u en 语言标记:[a-z]{2} 例如,模式应符合以下所有条件: title_en components_en.video.title components_en.video.title_en components_en.video.the_end components_es.video.title_en title_es components_es.video.title com

我试图找到一个正则表达式,它将匹配最后一次出现的特定语言标记,之后再也找不到其他语言标记

  • 特定语言标记:
    \u en
  • 语言标记:
    [a-z]{2}
例如,模式应符合以下所有条件:

title_en
components_en.video.title
components_en.video.title_en
components_en.video.the_end
components_es.video.title_en
title_es
components_es.video.title
components_en.video.title_es
components_es.video.the_end
此外,模式不应与以下任何一项匹配:

title_en
components_en.video.title
components_en.video.title_en
components_en.video.the_end
components_es.video.title_en
title_es
components_es.video.title
components_en.video.title_es
components_es.video.the_end
这应该做到:

_en(\.|$)(?!.*_[a-z]{2}(\.|$))
下面展示了它如何在您的测试用例上执行

如果要匹配整个字符串,请在表达式前面加上
^.*
前缀,并在后缀后面加上
*$

^.*_en(\.|$)(?!.*_[a-z]{2}(\.|$)).*$

结果如所示。

您的口味是什么?(您正在使用的语言)elasticsearch(java)有没有办法将整个字符串与此匹配?@clud击败您:)更新了我的答案。点(
\.
)有什么好处?这与预期的
…end
不匹配。@Bergi
\u end
不需要匹配。但是,需要匹配
\u end
之前的
\u en