我目前有以下代码:
if ($str =~ m{^[A-Z]+-\d+$} || $str =~ m{^\d+$}){
# do stuff
}
是否可以将2个正则表达式组合成单个表达式?这会改善性能吗?
答案 0 :(得分:3)
我会使用可选的non-capturing group并将这两者合并到
中if ($str =~ m{^(?:[A-Z]+-)?\d+$}) {
# do stuff
}
<强>详情
^
- 字符串开头(?:[A-Z]+-)?
- 一个可选的非捕获组(?
量词使其匹配1或0次)\d+
- 一位或多位$
- 字符串结束。