【问题标题】:Regex - Optional Positive Lookbehind正则表达式 - 可选的正向后视
【发布时间】:2018-04-23 21:07:55
【问题描述】:

我正在尝试匹配最后一个 / 之后和 . 之前的所有字符。我目前的挑战是. 只是有时存在。

我这里有一个例子:https://regex101.com/r/ThWZwX/3

我希望在这两种情况下都匹配“匹配”文本。

谢谢,

【问题讨论】:

  • 外观非常依赖于风味。你用的是哪一个?
  • 捕获它 - ^(?:.*\/)?([^.]+)
  • @Yunnosch 我正在使用 java
  • 如果是Java你可以试试(?<=/)(?![^\n/]*/)[^.\n]*
  • 成功了!谢谢@revo

标签: java regex


【解决方案1】:

您可以在捕获组中使用否定字符类,而无需前瞻:

.*\/([^.]*)

RegEx Demo

我们使用.*\/ 匹配最后一个/,通过使用.* 的贪婪匹配,然后我们使用否定字符类[^.]* 进行匹配,直到我们得到一个点或如果没有找到点则得到所有内容。

另请注意,我们使用([^.]*) 来捕获此匹配项。

【讨论】:

    【解决方案2】:

    不需要复杂的东西

    /([^/.]*)(?!.*/)

    https://regex101.com/r/KHyXcJ/1

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2010-11-04
      • 2013-09-09
      相关资源
      最近更新 更多