------------------------------------------------------------------------------------------------
# Case-Insensitive, Extended Regex
on filterListEgrep(srcList, regexStr)
set {oldTIDS, AppleScript's text item delimiters} to {AppleScript's text item delimiters, linefeed}
set cmd to "egrep -i '" & regexStr & "' <<< " & quoted form of (srcList as text)
set foundItems to paragraphs of (do shell script cmd)
set AppleScript's text item delimiters to oldTIDS
return foundItems
end filterListEgrep
------------------------------------------------------------------------------------------------
on filterListPerl(srcList, regexStr)
set {oldTIDS, AppleScript's text item delimiters} to {AppleScript's text item delimiters, linefeed}
set cmd to "perl -wlne 'if (m/" & regexStr & "/) {print \"$&\"}' <<< " & quoted form of (srcList as text)
set foundItems to paragraphs of (do shell script cmd)
set AppleScript's text item delimiters to oldTIDS
return foundItems
end filterListPerl
------------------------------------------------------------------------------------------------
on filterListSatimageOsax(findStr, srcList, caseSensitive)
try
set {oldTIDS, AppleScript's text item delimiters} to {AppleScript's text item delimiters, linefeed}
set srcList to srcList as text
set AppleScript's text item delimiters to oldTIDS
set findResult to find text findStr in srcList ¬
case sensitive caseSensitive ¬
all occurrences true ¬
string result true ¬
with regexp
return findResult
on error
return false
end try
end filterListSatimageOsax
------------------------------------------------------------------------------------------------
on filterListSed(srcList, regexStr)
set {oldTIDS, AppleScript's text item delimiters} to {AppleScript's text item delimiters, linefeed}
set cmd to "sed -nE '/" & regexStr & "/p' <<< " & quoted form of (srcList as text)
set foundItems to paragraphs of (do shell script cmd)
set AppleScript's text item delimiters to oldTIDS
return foundItems
end filterListSed
------------------------------------------------------------------------------------------------
set _list to {"Safari-01", "two", "three", "four", "five", "six", "Safari-7", "Safari", "Safari_5.1.5"}
filterListEgrep(_list, "saf")
filterListEgrep(_list, "^f")
filterListPerl(_list, "(?i).*safari.*")
filterListPerl(_list, ".*Safari$")
filterListPerl(_list, "^f.+")
filterListSatimageOsax(".*Safari.*", _list, false)
filterListSatimageOsax(".*saf.*", _list, false)
filterListSatimageOsax(".*\\d+.*", _list, false)
filterListSatimageOsax("^f.+", _list, false)
filterListSed(_list, "Safari")
filterListSed(_list, "Safari[^0-9]*[0-9]$")
filterListSed(_list, "^f")
------------------------------------------------------------------------------------------------