Я уверен, что есть, но вопрос, который вы должны задать, - «Какой лучший способ найти файлы с определенными расширениями?».
Регулярные выражения не лучший ответ на каждый вопрос.
Я бы предложил просто получить список всех файлов и передать их в функцию типа IsThisFileOneIWant(fileName,extensionList)
. Это гораздо проще, чем пытаться использовать регулярные выражения в своей задаче.
Что-то вроде этого должно сделать это:
function IsThisFileOneIWant(fileName,extensionList):
for each extension in extensionList:
if fileName.endsWith (extension):
return true
return false
Выполнено в псевдокоде, поскольку оно должно быть достаточно простым для превращения в любой другой язык.
Если вы должны иметь регулярное выражение, оно будет выглядеть примерно так (на основе значений в вашем вопросе):
"ASPX$|ASCX$|\.js$|\.rpt$|\.xml$"
но это полностью зависит от двигателя RE, который вы хотите использовать. Например, вот вывод команды egrep в моей рабочей директории:
pax@paxbox1:~/work$ ls -1 | egrep '\.sh$|\.c$'
backup0.sh
backup1.sh
eclipse.sh
monbt.sh
qq.c
qq.sh
xx yy.sh