首页 > 解决方案 > Perl中的正则表达式对于相同的约束具有不同的逻辑

问题描述

我想在 Perl 中准备一个正则表达式,它只能接受以下两种格式的输入:

1) 包含一个或多个字母,后跟一个连字符,再后跟一个或多个数字。示例:ABC-111、X-1234、XYZ-2

2) 仅包含数字。示例:12445、900、1

我尝试了这个表达式=~ /^[A-Z]+-\d+$|^\d+$/ ,它的作用是分别检查上述两种情况。这工作正常。

但是,如果我使用逻辑会容易得多:检查 [一个或多个字母后跟一个连字符] 后跟一个或多个数字是否出现零次或一次
出现上述逻辑的任何可能的正则表达式?我认为应该是=~ /^([A-Z]+-)*\d+$/。不幸的是,它不起作用。任何人都可以用上述逻辑提出一个可能的解决方案吗?

标签: regexperllogic

解决方案


推荐阅读