regex - 使用文件类型匹配带有 2 个或 3 个连字符的字符串(正则表达式)
问题描述
我正在尝试编写一个正则表达式,它匹配带有 2 个或 3 个连字符的字符串,后跟一个文件类型。到目前为止,我无法概括这一点以使其适用于任何一种情况。任何帮助都会很棒。
关于琴弦:
• 每个连字符分隔的子字符串的第一个字符都将大写。
• 每个子字符串的长度为 2 个或更多字符。
• 文件类型为 3 或 4 个字符长。
这就是我能想到的:[AZ][az]{2,}-[AZ][az]{2,}.[az]{3,4}
解决方案
您需要添加另一个字母字符组,该?
选项表示可以存在前面带括号的组的 0 或 1。您还忘记了.
通常代表任何单个字符的转义。此正则表达式应符合您的要求:
^[A-Z][a-z]+-[A-Z][a-z]+(-[A-Z][a-z]+)?\.[a-z]{3,4}$
.
但是,请记住,文件扩展名有时可能包含数字,例如.bz2
. 除非您可以直接控制文件扩展名,否则我会改用它:
^[A-Z][a-z]+-[A-Z][a-z]+(-[A-Z][a-z]+)?\.[a-z0-9]{3,4}$
.
推荐阅读
- javascript - 如何使用下拉列表中的值在 javascript 中创建函数?
- reactjs - 在 React 组件的构造函数中检查并推送到另一个 URL 是否有效?
- r - Project MaxENT 将模型拟合到地理空间
- c# - 无法打开登录请求的数据库“测试”。登录失败。用户 'Domain\userid' 登录失败
- reactjs - 为什么在对数字求和时出现错误?
- angular - 如何检测鼠标是否以 Angular 方式离开窗口?
- typescript2.0 - 打字稿记录项目计数
- python - 为什么 docker-compose python 找不到气流操作员的模块
- java - 输出值总是返回不正确的东西
- firebase - 如何在 Google Cloud Run 上获取 GCP 服务帐号凭据?