Questo non sembra un modo terribilmente efficiente per farlo, ma penso che sia un problema di AppleScript piuttosto che la mia mancanza di creatività (potrei sbagliarmi):
set mylist to {"table", "s01e01", "nam", "aces", "linear", "20160430", "01", "textless", "3840x2160", "000011", "jpg"}
repeat with str in mylist
set str to the contents of str
repeat with i from 0 to 9
if str contains i then
set end of mylist to str
exit repeat
end if
end repeat
set mylist to the rest of mylist
end repeat
return mylist
Potresti farlo molto più facilmente usando un po 'di script di shell:
set mylist to {"table", "s01e01", "nam", "aces", "linear", "20160430", "01", "textless", "3840x2160", "000011", "jpg"}
set the text item delimiters to space
do shell script "grep -o '\S*\d\S*' <<< " & the quoted form of (mylist as text)
return the paragraphs of the result
EDIT: ho parlato un po 'troppo presto della mia (mancanza di creatività), poiché mi è venuta in mente questo metodo leggermente sfaccettato per farlo con AppleScript. In teoria, dovrebbe essere più veloce del primo metodo:
set mylist to {"table", "s01e01", "nam", "aces", "linear", "20160430", "01", "textless", "3840x2160", "000011", "jpg"}
set the text item delimiters to {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
repeat with str in mylist
set str to the contents of str as text
if str ≠ the text items of str as text then ¬
set the end of mylist to str
set mylist to the rest of mylist
end repeat
return mylist