我可以确定任一个或语句中的哪个正则表达式匹配我的字符串吗?

前端之家收集整理的这篇文章主要介绍了我可以确定任一个或语句中的哪个正则表达式匹配我的字符串吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于这个声明:

if ($SDescription =~ m/$sdescription_1/gi or $SDescription =~ m/$sdescription_2/gi){
#...
}

除了打印$SDescription手动比较它,是否可以分辨出哪个$SDescription匹配:$sdescription_1或$sdescription_2?

解决方法@H_404_17@
在标量上下文中,=〜运算符返回匹配数.没有/ g修饰符,匹配的数量是0或1,所以你可以做类似的事情

$match_val = ($SDescription =~ m/$sdescription_1/i)
         + 2 * ($SDescription =~ m/$sdescription_2/i);
if ($match_val) {

    if ($match_val == 1) { ... }  # matched first regex
    if ($match_val == 2) { ... }  # matched second regex
    if ($match_val == 3) { ... }  # matched both regex

}

猜你在找的正则表达式相关文章