我一直在寻找RegEX从代码中提取带路径的文件,以便我可以检查它们是否存在但最终没有得到我想要的。我想这很可能是由于缺乏RegEX知识。
我对我运行的每个RegEx示例感到有点沮丧,我总是得到没有Paths的文件的文件名,我的要求在sed有点相当简单。
/ “+ / {1,6} +。myext”/
我的路径需要1-6深度,它需要是具有特定扩展名的文件名,路径是基于unix但不是始终以正斜杠开始。文件名不能以点开头。
答案 0 :(得分:1)
我在powershell中尝试了这个,它确实有用,我相信你可以在你的应用程序中使用这样的东西。
$Matches = @()
$String = '/this/is/a/long/path/and/Filename.MyExtension'
if ($String -match '^(/?[^/]+){1,6}/([^/.][^/]*[.]MyExtension)$') {
$Matches[2]
} # end if
产量
Filename.MyExtension
这通过查找1到6组字符串来工作,每个字符串必须以/开头,字符串继续通过所有非斜杠字符或字符组不能以/
开头最后一组字符不得以/或开头。然后是所有非斜杠字符,直到所需的点扩展名[在本例中为“MyExtension”]
答案 1 :(得分:0)
我知道OP问题已经迟到了,但对OP和其他试图使用RegEx的人有帮助的是regexlib.com;他们有一个庞大的正则表达式库。它们还有一个RegEx tester,非常有助于测试您的RegEx代码。此外,Ultrapico's Expresso是一个非常有用的工具,用于创建正则表达式。