写一个正则表达式来匹配,直到最后一个正斜杠出现在第一个等号之前



这里有一个有趣的正则表达式问题。为以下示例字符串编写一个正则表达式,以"path/to/file"的形式获得第一组的结果:

  1. 路径/to/file/foo=1/bar.txt
  2. 路径/to/file/foo=1/bar=2/baz.txt
  3. 路径/to/file/foo.txt

所以为了解释,我想在第一次出现'='之前匹配最后一个正斜杠。

我能够将正则表达式与示例字符串一(^.*)/(.*)=进行匹配,但它从示例字符串2中捕获了路径/to/file/foo=1——这不是预期的,我不想看到路径中带有"="的部分。

我可以使用(^.*)/(.*)=(.*)=来解决示例2,但这不能扩展到其他示例。

示例3很容易用(^.*)/捕获。能够匹配字符串3是一件好事,但我有一种方法可以在代码中轻松解决这个问题。

感谢您的帮助,我期待着了解更多关于regex的信息。

您应该使用这个regex,

^([^=]+)/

这将匹配除=之外的所有内容,并在找到/后立即停止匹配,并根据需要捕获第一组中的内容。

查看此演示

相关内容

最新更新