regex - 通用文件扩展名的正则表达式
问题描述
我正在尝试设计一个能够捕获的正则表达式:
*.txt
*.txt|*cvs
正则表达式不得捕获:toto.txt
或*.txt;*.csv
我想到了这个:\*\.[a-zA-Z]+)(\|\*\.[a-zA-Z]+)*
但我捕捉到*.txt;*.csv
了我不想要的。
解决方案
您可能会使用:
^\*\.[a-zA-Z]+(?:\|\*\.[a-zA-Z]+)?$
在零件
^
字符串的开始\*\.[a-zA-Z]+
匹配*.
后跟 1+ 个字符 A-Za-z(?:
非捕获组\|\*\.[a-zA-Z]+
匹配|*.
后跟 1+ 个字符 A-Za-z
)?
关闭组并使其可选$
字符串结束
推荐阅读
- java - 如何在 JFace TreeViewer 中按类型对元素进行分组?
- python - 获取具有相同值的每个元素的平均值的最快方法?
- python - 安装后可以从应用程序中删除 Python 文件夹吗?
- javascript - js中的多个if条件没有给出所需的输出
- java - Mapstruct 与 maven-pom 中的其他注释处理器一起
- ruby - 在使用 Ruby2.6 的 Apache Netbeans 11 中,Ruby Gems 获取失败,而它与 Ruby2.4 一起使用
- nginx - 使用 Nginx 作为代理密码时的 Apache Openmeetings 5.0.0-M2 CSRF 攻击
- hybris - Hybris - PromotionSourceRule - 规则条件限定类别总是回退到其他目录
- javascript - 错误:超时 - 5000 毫秒内未调用异步回调(由 jasmine.DEFAULT_TIMEOUT_INTERVAL 设置)
- javascript - Promise.all 不等待承诺