Regex 正则表达式来查找具有各种扩展名的文件,如ASPX、ASCX、.js、.rpt、.xml

Regex 正则表达式来查找具有各种扩展名的文件,如ASPX、ASCX、.js、.rpt、.xml,regex,Regex,是否有任何方法可以编写一个正则表达式,用于查找具有不同扩展名的文件。我肯定有,但您应该问的问题是“查找具有特定扩展名的文件的最佳方法是什么?” 正则表达式并不是每个问题的最佳答案 我建议只获取所有文件的列表,并将它们传递到一个函数中,如IsThisFileOneIWant(fileName,extensionList)。这比把正则表达式的使用硬塞进问题中要容易得多 像这样的东西应该可以做到: function IsThisFileOneIWant(fileName,extensionList):

是否有任何方法可以编写一个正则表达式,用于查找具有不同扩展名的文件。

我肯定有,但您应该问的问题是“查找具有特定扩展名的文件的最佳方法是什么?”

正则表达式并不是每个问题的最佳答案

我建议只获取所有文件的列表,并将它们传递到一个函数中,如
IsThisFileOneIWant(fileName,extensionList)
。这比把正则表达式的使用硬塞进问题中要容易得多

像这样的东西应该可以做到:

function IsThisFileOneIWant(fileName,extensionList):
    for each extension in extensionList:
        if fileName.endsWith (extension):
            return true
    return false
使用伪代码完成,因为它应该足够简单,可以转换为任何其他语言

如果你必须有一个正则表达式,它看起来会像(根据你问题中的值):

但这完全取决于你想要使用的引擎。例如,下面是我的工作目录中的egrep命令的输出:

pax@paxbox1:~/work$ ls -1 | egrep '\.sh$|\.c$'
  backup0.sh
  backup1.sh
  eclipse.sh
  monbt.sh
  qq.c
  qq.sh
  xx yy.sh

我肯定有,但您应该问的问题是“查找具有特定扩展名的文件的最佳方法是什么?”

正则表达式并不是每个问题的最佳答案

我建议只获取所有文件的列表,并将它们传递到一个函数中,如
IsThisFileOneIWant(fileName,extensionList)
。这比把正则表达式的使用硬塞进问题中要容易得多

像这样的东西应该可以做到:

function IsThisFileOneIWant(fileName,extensionList):
    for each extension in extensionList:
        if fileName.endsWith (extension):
            return true
    return false
使用伪代码完成,因为它应该足够简单,可以转换为任何其他语言

如果你必须有一个正则表达式,它看起来会像(根据你问题中的值):

但这完全取决于你想要使用的引擎。例如,下面是我的工作目录中的egrep命令的输出:

pax@paxbox1:~/work$ ls -1 | egrep '\.sh$|\.c$'
  backup0.sh
  backup1.sh
  eclipse.sh
  monbt.sh
  qq.c
  qq.sh
  xx yy.sh

假设您有一个文件列表,并且正在查找.pdf、.chm和.doc,您可以通过以下方式进行检查:

\.pdf$\.chm$\.doc$


如果您要对照单个文件名检查,上面的正则表达式应该可以使用。

假设您有一个文件列表,并且正在查找.pdf、.chm和.doc,您可以通过以下方式进行检查:

\.pdf$\.chm$\.doc$


如果要对照单个文件名检查,上面的正则表达式应该可以工作。

这在
Bash
中有效:

find . -regex  '.*\\.\\(pdf\|chm\|doc\\)'

这适用于
Bash

find . -regex  '.*\\.\\(pdf\|chm\|doc\\)'

我同意你的观点。但就我而言,正则表达式是唯一的解决方案。请帮帮我的忙question@Pax:为了便于阅读,我想我应该使用这个正则表达式:“.\(aspx | ascx | js | rpt | xml)$”。除此之外,我支持你的第一句话+1我同意你的观点。但就我而言,正则表达式是唯一的解决方案。请帮帮我的忙question@Pax:为了便于阅读,我想我应该使用这个正则表达式:“.\(aspx | ascx | js | rpt | xml)$”。除此之外,我支持你的第一句话+1能否粘贴要搜索的字符串示例?能否粘贴要搜索的字符串示例?