Regex查找文件路径-与一些微妙的?



我需要解析一些文件并查找检测其中的所有文件路径。

现在,我使用这个表达式,它在99%的情况下有效:

(".*/.*?.[w:.]+)

但是,像这样:

someFunction("Default","Asset/NiceAssetTab/Lighting/MuchLighting.act")

它输出"Default","Asset/NiceAssetTab/Lighting/MuchLighting.act

我如何在不改变已经存在的功能的情况下改进我的正则表达式?

或者,如果更容易的话,这里是我试图检测的路径的一些细节:

  • 以&quot开头
  • 一个文件可以有多个扩展名:"file.png.tga.txt.oo ">
  • 路径可以在文件夹名中有扩展名:"(…)
  • 他们至少有一个";(扩展名)

谢谢:)

你可以将你的模式更新为:

"[^"/]*/[^"]*.[w:.]+"

模式匹配:

  • "匹配开口处"
  • [^"/]*匹配0+次任何字符,"/除外
  • /匹配/(如果分隔符不是/,则不必转义正斜杠)
  • [^"]*.匹配除"以外的任何字符,然后回溯到匹配结束处的第一个点
  • [w:.]+匹配1+次单词字符或:.
  • "匹配关闭"

Regex演示

注意[w:.]+也可能只匹配最后一个点之后的点,对于只匹配,您不需要周围的捕获组(...)

如果文件名可以包含word字符和:,但不能以点结尾:

"[^"/]*/[^"]*.[w:]+(?:.[w:]+)*"

Regex演示

最新更新