我用正则表达式相当新/生锈。我正在从textarea元素中收集一段文本,我想查看填写它的人是否使用了任何段落等等。
我正在使用以下内容,我知道这是错误的。任何帮助将不胜感激。
preg_match('/\r\n|\n|\r/', $_GET['text']);
答案 0 :(得分:4)
你的正则表达没错。但是要检测段落,您需要查找两个连续的换行符:
preg_match('/(\r?\n){2}/'
回车\r
是可选的,我只会检查\n
换行符,因为大多数平台将其视为换行符。显然,如果提交的文本只是一行而没有段落或换行符,则此检查将失败。
或者,您也可以使用任意排序的空格来探测两个换行符:
preg_match('/(\s*\n){2}/'
答案 1 :(得分:0)
假设:
这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。这是一个段落。
这是另一个。这是另一个。这是另一个。这是另一个。这是另一个。这是另一个。这是另一个。这是另一个。这是另一个。这是另一个。
你可以这样做:
if (str_replace("\r\n\r\n", '', $str) != $str)
// the input contains at least two paragraphs