【发布时间】:2016-10-19 14:18:13
【问题描述】:
假设我有这个字符串:
/folder1/folder2/match/folder3/match.app
我想提取一个以匹配条件(“match”)结尾但后面没有特定字符(“@987654323 @")
结果应该是:
/folder1/folder2/match
案例一
如果“match.”在“match”之前后跟任何其他字符或无:
/folder1/folder2/match.app/folder3/match/folder4
结果应该是:
/folder1/folder2/match.app/folder3/match
因为第一个“match”后面跟着一个“.”
案例 2
如果有两个匹配项:
/folder1/folder2/match/folder3/match/folder4
结果应该是:
/folder1/folder2/match
我只想保留第一个子字符串。
案例 3
如果没有任何“match”而没有以下“.”:
/folder1/folder2/match.app
结果应该是:
False
当没有出现时,正则表达式应该输出“False”。
案例4
如果有一个“match”后跟除“/”或“仅此而已”之外的任何其他字符:
/folder1/folder2/matcha/match/folder3
或
/folder1/folder2/matcha/match
结果应该是:
/folder1/folder2/matcha/match
有什么想法吗?谢谢!
注意:我想在 Applescript 中使用这个正则表达式:
set strRegEx to ???
set strResult to find text strRegEx in strTextToSearch with regexp and string result
更新:添加案例 4
【问题讨论】:
-
您要在哪里添加代码,是否有任何 javascript 或 .htaccess 或任何语言文件?
-
在applescript中:设置strResult以使用正则表达式和字符串结果在strTextToSearch中查找文本strRegEx
-
/(?<=\/match)(?!\.)(.*)/应该在 php PCRE 中完成。我不确定applescript中使用的是什么引擎。 -
没有匹配项时如何获得“False”?
-
下面的答案都可以被applescript很好地解释(除了“转义”字符是“\\”而不仅仅是“\”)
标签: regex string path applescript