检查字符串是否以一个下划线和两个字母结尾的正则表达式


Regular Expression to check if string ends with one underscore and two letters with php

我试图检查字符串是否以一个_和两个字母在php旧系统上结束。我在这里检查stackoverflow的答案,我发现一个想做同样的事情,但有一个.和两个数字。

我试着改变它来满足我的需要,我得到了这个:

''.*''_''a{2,2}$

然后我转到php并尝试如下:

$regex = '(''.*''_''a{2,2}$)'; echo preg_match($regex, $key);

但是这总是返回一个错误,说如下:

preg_match(): Delimiter must not be alphanumeric or backslash

我得到这种情况是因为我不能使用反斜杠或其他东西,我怎么才能正确地做到这一点?而且,我的正则表达式是正确的(我不知道如何形成这个表达式以及它们是如何工作的)?

您可以将此正则表达式与分隔符一起使用:

$regex = '/_[a-z]{2}$/i';

你得到这个错误,因为在PHP中每个regex需要一个分隔符(不使用/上面可以是任何其他字符,如~也)。

^.*_[a-zA-Z]{2}$

这个应该可以帮你。

    $re = "/^.*_[a-zA-Z]{2}$/"; 
    $str = "abc_ac"; 
    preg_match($re, $str);