使用preg_match检查字符串是否仅包含AZ,az和 - (破折号)字符

mei*_*ryo 3 php regex

我试过了:

print_r(preg_match("[A-Za-z\\-]", $str));
Run Code Online (Sandbox Code Playgroud)

而且我变得虚假.我不是很擅长正则表达式,但它似乎适用于http://regexpal.com/

我在这里错过了什么吗?

编辑:例如 $str = zREBsZtyvw

Ro *_* Mi 6

描述

此表达式将确保在没有空格的字符串中有1个或多个大写,小写或超大

^[A-Za-z\\-]{1,}$

在此输入图像描述

匹配模式说明:

(^[A-Za-z\\-]{1,}$)

匹配如下:

(

^ 字符串的开头

[A-Za-z\\-]{1,} 任何字符:'A'到'Z','a'到'z','\',' - '(至少1次(匹配尽可能多的数量))

$ 在可选的\n之前,以及字符串的结尾

) 分组结束

PHP代码示例:

<?php
$sourcestring="zREBsZtyvw";
preg_match_all('/^[A-Za-z\\-]{1,}$/i',$sourcestring,$matches);
echo "<pre>".print_r($matches,true);
?>

$matches Array:
(
    [0] => Array
        (
            [0] => zREBsZtyvw
        )

)
Run Code Online (Sandbox Code Playgroud)

  • 我看了你的个人资料.你的正则表达式答案是非常彻底的.感谢您在模式匹配中从头到脚覆盖很多,我很感激努力. (2认同)