试图用php理解处理正则表达式

dot*_*uad 2 php regex

我试图理解用PHP处理正则表达式.到目前为止,我的代码是:
PHP代码:

$string = "This is a 1 2 3 test.";

$pattern  = '/^[a-zA-Z0-9\. ]$/';
$match = preg_match($pattern, $string);

echo "string: " . $string . " regex response: " , $match; 
Run Code Online (Sandbox Code Playgroud)

当我认为它应该返回1时,为什么$ match总是返回0?

dec*_*eze 7

[a-zA-Z0-9\. ]表示一个字母数字或"."字符.或"".您将需要重复此模式:

$pattern  = '/^[a-zA-Z0-9. ]+$/';
                            ^
                      "one or more"
Run Code Online (Sandbox Code Playgroud)

注意:您不需要.在字符组内转义.

  • @Rob另一方面,你也可能会对反斜杠是应该匹配还是应该逃脱感到困惑.如果你问我,这两种方式都是一团糟,我喜欢在简洁方面犯错. (3认同)