允许换行的 PHP 正则表达式不起作用

标签 php regex

PHP preg_match 接受新行

我想通过 PHP preg_match 函数传递每个帖子/字符串。我想接受所有字母数字和一些特殊字符。帮助我编辑语法以允许换行。当用户填写文本区域并按回车键时。以下语法不允许换行。

请反馈以下特殊字符是否正确完成 */_:,.?@;-*

if (preg_match("/^[0-9a-zA-Z \/_:,.?@;-]+$/", $string)) { 
    echo 'good';
else {
    echo 'bad';
}

最佳答案

你快到了!

其他人提到的 DOTALL 修饰符与您的正则表达式无关。

要允许换行,我们只需将 \r\n 添加到您的字符类中。您的代码变为:

if (preg_match("/^[\r\n0-9a-zA-Z \/_:,.?@;-]+$/", $string)) { 
    echo 'good';
else {
    echo 'bad';
}

请注意,这个测试和正则表达式可以用更简洁的方式编写:

echo (preg_match("~^[\r\n\w /:,.?@;-]+$~",$string))? "***Good!***" : "Bad!";

查看 online demo 的结果在底部。

  • \w 匹配字母、数字和下划线,所以我们可以在字符类中去掉它们
  • 将分隔符更改为 ~ 允许您使用 / 斜杠而不对其进行转义(您需要转义分隔符)

关于允许换行的 PHP 正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358686/

相关文章:

jquery - dataTables fnFilter 列 on img 文件名

php - 如何检查模型是否具有特定属性?

java - 亚马逊 S3 集成

javascript - JQuery AJAX 加载使用 AJAX 的表单

php - 如何在.php文件中使用jquery脚本?

c# - 编译的正则表达式性能不如预期?

php - PHP 正则表达式查询

python - 删除两个特定字符之间的文本(多次出现)

Java用两个空格替换数字包围的一个空格

java - 在 Java 中匹配字符串中的单词