如何匹配字母,数字和新行与正则表达式?

时间:2016-11-07 18:18:00

标签: php regex

我有这个文本文件:

Host: x-sgdo40.serverip.co
Username: fastssh.com-test
Password: test
Port: 443
Info: Date Expired : 10-November-2016

我希望将其与字母,数字,一些其他字符和新行匹配:

if (preg_match("/^[A-Za-z0-9 =.,:-]+$/",file_get_contents($filename))){
    echo "it matches";
}
else {
    echo "doesn't match";
}

问题是/^[A-Za-z0-9 =.,:-]+$/与新行不匹配,我该如何解决这个问题?

修改

^[A-Za-z0-9 =.,:\\n-]+$仍然无法正常工作

1 个答案:

答案 0 :(得分:1)

这个正则表达式应该有效:

^[A-Za-z0-9=.,:\s-]+$
  • \s匹配所有空格,包括换行符
  • 将未转义的连字符保留在字符类的第一个或最后一个位置

RegEx Demo

代码:

if (preg_match('/^[A-Za-z0-9=.,:\s-]+$/', file_get_contents($filename))) {
    echo "it matches";
}
else {
    echo "doesn't match";
}