Regex 用于匹配文件扩展名列表的正则表达式
我希望有一个正则表达式,它可以匹配以管道分隔的文件扩展名列表,例如Regex 用于匹配文件扩展名列表的正则表达式,regex,match,Regex,Match,我希望有一个正则表达式,它可以匹配以管道分隔的文件扩展名列表,例如doc | xls | pdf。此列表也可以是单个扩展名,例如pdf,也可以是通配符*或?,我还想排除|位于列表的开头或结尾,并且与\/:“字符不匹配 我尝试了以下方法,但它不能解释一个*通配符 ^([^\\\/:“]\\[^\\:”])[^\/\\:“]*[^\\/\\:”]$ 我曾参加过一个在线测试,但似乎无法克服最后的障碍。如果有人能为我指出正确的方向,我将不胜感激。你可以用更小的构建块来构建它。一个扩展,不包括你提到的字符
doc | xls | pdf
。此列表也可以是单个扩展名,例如pdf
,也可以是通配符*
或?
,我还想排除|
位于列表的开头或结尾,并且与\/:“
字符不匹配
我尝试了以下方法,但它不能解释一个*
通配符
^([^\\\/:“]\\[^\\:”])[^\/\\:“]*[^\\/\\:”]$
我曾参加过一个在线测试,但似乎无法克服最后的障碍。如果有人能为我指出正确的方向,我将不胜感激。你可以用更小的构建块来构建它。一个扩展,不包括你提到的字符,将是:
[^\\<>/:"]+
这也可以自动匹配通配符,因为它们不是禁止的
要构造与这些列表分开的|
,很容易:
[^\\<>/:"|]+
如果希望完整字符串与此匹配,请添加^
和$
锚定:
^[^\\<>/:"|]+(\|[^\\<>/:"|]+)*$
^[^\\/:“|]+(\\\\\\/:“|]+)*$
在您的示例中,除了通配符之外,扩展是否总是像alpha一样?它们也可以是mp4 | mp3例如,我尝试了您的建议,但在添加第一个|分隔符以添加第二个文件扩展名(即doc)时,该建议不匹配|xls@Neil:抱歉,忘了退出|
。这似乎成功了,我还必须退出/
,才能在我使用的在线测试仪中正常工作。
[^\\<>/:"|]+(\|[^\\<>/:"|]+)*
^[^\\<>/:"|]+(\|[^\\<>/:"|]+)*$