如何编写Regexp来过滤非英语字符

如何编写Regexp来过滤非英语字符,regex,linux,Regex,Linux,我有一大堆文件。。它们都是这种文件名 english words number.extension or english words Charaters.extension (Charaters mean Chinese, Japanese, Koren etc) 如何编写Regexp来过滤它们、删除数字和非英语字符 这样他们就可以成为 english words.extension -thx对于26个英文字母,您可以使用/[^A-Za-z]/或/[^A-z]/i。我不知道您使用什么编

我有一大堆文件。。它们都是这种文件名

english words number.extension
or 
english words Charaters.extension   (Charaters mean Chinese, Japanese, Koren etc)
如何编写Regexp来过滤它们、删除数字和非英语字符

这样他们就可以成为

english words.extension

-thx

对于26个英文字母,您可以使用
/[^A-Za-z]/
/[^A-z]/i
。我不知道您使用什么编程语言来给出一个更具体的示例。

如果您不介意有点冗长,您可以创建一个“可接受”字符的显式列表,并拒绝列表中没有的任何字符。例如:

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”调用。如果有多个文件转换为同一个“纯英语”名称,您将遇到问题,但您应该能够通过在文件名中附加一个额外字符来解决此问题。

然后查看@codaddict的建议。如果您提供一些具体的示例,我们可能会帮助您。目前没有足够的信息。你提供的例子没有多大意义。