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