正则表达式,忽略组中的最后一场比赛

时间:2017-11-10 14:47:50

标签: regex regex-lookarounds regex-group

我想在下面的行中捕捉世界

“ArticleDAO”

  • it.foo.burp.ArticleDAOLocal
  • it.foo.burp.ArticleDAO

注意: it.foo.burp可以是任何包,类名可以是用“Local”一词完成或不完成的所有内容。

如果存在本地,则必须省略。

这是我的正则表达式:

(.*\.)([\w]+)(?:Local)?

这适用于第二个示例,但不适用于第一个示例,因为它也捕获“Local”($ 1)

1 个答案:

答案 0 :(得分:1)

您可以将此正则表达式与可选匹配和延迟量词一起使用:

(\w+?)(?:Local)?$

RegEx Demo

您的匹配在捕获的组#1中可用。

  • (\w+?):将匹配1个或多个单词字符(非贪婪)
  • (?:Local)?$:在行结束前匹配可选的Local