我想要一个正则表达式来匹配以管道 |
分隔的文件扩展名列表,例如 doc|xls|pdf
此列表也可以只是单个扩展名,例如 {{ 1}} 或者它也可以是通配符 pdf
或 *
我还想排除列表开头或结尾的 ?
并且也不匹配 {{ 1}} 个字符。
我尝试了以下方法,但它没有考虑单个 |
通配符。
\<>/:"
我参加过其中一位在线测试员,但似乎无法克服最后的障碍。如果有人能指出我正确的方向,我将不胜感激。
答案 0 :(得分:1)
您可以从较小的构建块构建它。单个扩展名,不包括您提到的字符,将是:
[^\\<>/:"]+
我们可能还应该排除 |
,因为它是我们的分隔符:
[^\\<>/:"|]+
这也可以自动匹配通配符,因为它们没有被禁止。
从这些中构造|
分隔的列表很容易:
[^\\<>/:"|]+
后跟任意数量的相同事物,前面带有 |
:
[^\\<>/:"|]+(\|[^\\<>/:"|]+)*
如果您想要一个完整的字符串来匹配它,请添加 ^
和 $
锚点:
^[^\\<>/:"|]+(\|[^\\<>/:"|]+)*$