regex - Perl中的正则表达式对于相同的约束具有不同的逻辑
问题描述
我想在 Perl 中准备一个正则表达式,它只能接受以下两种格式的输入:
1) 包含一个或多个字母,后跟一个连字符,再后跟一个或多个数字。示例:ABC-111、X-1234、XYZ-2
2) 仅包含数字。示例:12445、900、1
我尝试了这个表达式=~ /^[A-Z]+-\d+$|^\d+$/
,它的作用是分别检查上述两种情况。这工作正常。
但是,如果我使用逻辑会容易得多:检查 [一个或多个字母后跟一个连字符] 后跟一个或多个数字是否出现零次或一次
出现上述逻辑的任何可能的正则表达式?我认为应该是=~ /^([A-Z]+-)*\d+$/
。不幸的是,它不起作用。任何人都可以用上述逻辑提出一个可能的解决方案吗?
解决方案
推荐阅读
- .net-core - MassTransit SignalR 绑定
- google-cloud-platform - 如何通过 MQL 获取 GCP 计算虚拟机实例的正常运行时间总数和百分比?
- qt - QML:列表代表之间的分隔符
- python - 在 swig 生成的 python 接口中使用 std::vector 成员变量作为列表
- cloudflare - 如何使用 Wasabi 和 Cloudflare 调整图像大小?
- python - 如何根据节点坐标及其连接数据在 Abaqus inp 文件中重建 Python/Matlab 中的网格?
- javascript - 如何在 vue echarts 中添加自定义图例(不在系列中)并启用切换以切换系列中的其他图例?
- node.js - 帮助寻找朋友机器人
- javascript - OPTIONAL CHAINING 和 NULLISH COALESCING 运算符的组合未呈现预期结果
- netlify - 如何使用 GitHub 安装 Netlify