这里有一个有趣的正则表达式问题。为以下示例字符串编写一个正则表达式,以"path/to/file"的形式获得第一组的结果:
- 路径/to/file/foo=1/bar.txt
- 路径/to/file/foo=1/bar=2/baz.txt
- 路径/to/file/foo.txt
所以为了解释,我想在第一次出现'='之前匹配最后一个正斜杠。
我能够将正则表达式与示例字符串一(^.*)/(.*)=
进行匹配,但它从示例字符串2中捕获了路径/to/file/foo=1——这不是预期的,我不想看到路径中带有"="的部分。
我可以使用(^.*)/(.*)=(.*)=
来解决示例2,但这不能扩展到其他示例。
示例3很容易用(^.*)/
捕获。能够匹配字符串3是一件好事,但我有一种方法可以在代码中轻松解决这个问题。
感谢您的帮助,我期待着了解更多关于regex的信息。
您应该使用这个regex,
^([^=]+)/
这将匹配除=
之外的所有内容,并在找到/
后立即停止匹配,并根据需要捕获第一组中的内容。
查看此演示