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

用php检查字符串是否以一个下划线和两个字母结尾的正则表达式,php,regex,Php,Regex,在使用php的旧系统上,我试图检查字符串是否以一个\uu和两个字母结尾。我在这里查看了stackoverflow的答案,我发现有一个想要做同样的事情,但是有一个和两个数字 我试着改变它来满足我的需要,我得到了这个: \\.\\\\\ua{2,2}$ 然后我转到php并尝试了以下方法: $regex='(\\.\\\\\a{2,2}$); echo preg_match($regex,$key); 但这总是返回一个错误,如下所示: preg_match():分隔符不能是字母数字或反斜杠 我知道这

在使用php的旧系统上,我试图检查字符串是否以一个
\uu
和两个字母结尾。我在这里查看了stackoverflow的答案,我发现有一个想要做同样的事情,但是有一个
和两个数字

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

\\.\\\\\ua{2,2}$

然后我转到php并尝试了以下方法:

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

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

preg_match():分隔符不能是字母数字或反斜杠

我知道这是因为我不能用反斜杠什么的,我怎么能正确的做到呢?还有,我的正则表达式是正确的吗(我不知道如何形成这个表达式以及它们是如何工作的)

这应该对你有用

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

    preg_match($re, $str);

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

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

您之所以会遇到这个错误,是因为在PHP中,每个正则表达式都需要一个分隔符(而不是使用上面的
/
,它可以是任何其他字符,比如
~

如果我也要测试它,如果字符串的结尾是:
\u slug
*
随机字母和
\u slug
一个特定的单词,该怎么办?我会这样做:
'/{a-z]{2}{u slug$/I'
那么它将是:
$regex='/{u([a-z]{2}}}}.*?\u slug)$/I'
$regex = '/_[a-z]{2}$/i';