как написать регулярное выражение, чтобы отфильтровать неанглийский характер - PullRequest
0 голосов
/ 13 декабря 2010

у меня есть куча файлов .. они все в этом виде имени файла

english words number.extension
or 
english words Charaters.extension   (Charaters mean Chinese, Japanese, Koren etc)

как я могу написать Regexp, чтобы отфильтровать их, удалить номер и неанглийский символ

чтобы они могли стать

english words.extension

-thx

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Всего для 26 английских букв вы можете использовать /[^A-Za-z]/ или /[^a-z]/i.Я не знаю, какой язык программирования вы используете, чтобы привести более конкретный пример.

0 голосов
/ 13 декабря 2010

Если вы не возражаете быть немного многословным, вы можете составить явный список «приемлемых» символов и отклонить все, чего нет в списке.Например:

for old_filename in `ls`; do
    new_filename = `echo $old_filename |sed -e 's/[^a-zA-Z.-_ ]//g'`
    mv $old_filename $new_filename
done

Если в диапазонах символов «A-Z» и т. Д. Выбраны те символы, которые вам не нужны (может быть или не быть проблемой в зависимости от вашей локали), тогда вы можетевсегда перечисляйте каждую букву индивидуально.

Настройте вызов 'ls', если вы хотите выбрать только определенные файлы в каталоге (фильтр по расширению и т. д.).Вы столкнетесь с проблемами, если несколько файлов преобразуются в одно и то же имя «только на английском», но вы сможете обойти это, добавив дополнительный символ к имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...