Applescript 获取具有特定内容的列表项
如何获取包含特定内容的列表项 例如:Applescript 获取具有特定内容的列表项,applescript,Applescript,如何获取包含特定内容的列表项 例如: set listItems to {"abc","a bc","a(b)c","(bc"} get every item which contains "a" of listItems 期望结果:“abc”、“abc”、“a(b)c” 或 预期结果:“a(b)c” 我已经阅读了基础教程:所以我对任何一种解决方法都感兴趣。我认为纯applescript中没有一种解决方法。你必须循环这些项目。大概是这样的: set listItems to {"abc", "
set listItems to {"abc","a bc","a(b)c","(bc"}
get every item which contains "a" of listItems
期望结果:“abc”、“abc”、“a(b)c”
或
预期结果:“a(b)c”
我已经阅读了基础教程:所以我对任何一种解决方法都感兴趣。我认为纯applescript中没有一种解决方法。你必须循环这些项目。大概是这样的:
set listItems to {"abc", "a bc", "a(b)c", "(bc"}
my searchForPatterns(listItems, {"a"})
--result: {"abc", "a bc", "a(b)c"}
my searchForPatterns(listItems, {"(", ")"})
--result: {"a(b)c"}
on searchForPatterns(listItems, searchPatterns)
set resultList to {}
repeat with listItem in listItems
set match to true
repeat with searchPattern in searchPatterns
if listItem does not contain searchPattern then ¬
set match to false
end repeat
if match is true then ¬
copy listItem as text to end of resultList
end repeat
return resultList
end searchForPatterns
您可以简单地遍历列表并测试匹配项:
set listItems to {"abc", "a bc", "a(b)c", "(bc"}
set finalItems to {}
repeat with thisItem in listItems
if (thisItem contains "(") and (thisItem contains ")") then set finalItems to finalItems & thisItem
end repeat
return finalItems
set listItems to {"abc", "a bc", "a(b)c", "(bc"}
set finalItems to {}
repeat with thisItem in listItems
if (thisItem contains "(") and (thisItem contains ")") then set finalItems to finalItems & thisItem
end repeat
return finalItems