我有一个文本区域,在提交表单时我需要解析文本。
例如,我需要从此文本区域获取第一个字符串,获取它并按原样保留整个文本。我不想使用nl2br
函数,然后将模式与<br />
一起使用。我可以解析\n
个字符,如果是这样的话怎么样?我无法在我的PHP代码中执行此操作,但我可以在regex测试器链接到示例下面。
这是我的代码,但不起作用:
preg_match('/(.+)\n\n/', $_POST['text'],$title);
$title = $title[0];
echo $title;
它什么都不返回。帮我改变一下,谢谢。
修改
答案 0 :(得分:2)
您不需要使用正则表达式,请使用strtok:
$title = strtok( $_POST['text'], "\n" );
修改强>
好的,然后尝试使用\R
来匹配任何类型的行结尾'/(.+)\R/'
答案 1 :(得分:1)
这应该适用于php
:
$re = '/(.+)\n\n/';
$str = "first string\n\nsecond string\n\nother strings bla bla bla";
if (preg_match($re, $str, $matches))
echo $matches[1];
else
echo "nope";
first string
在输入$str
中使用双引号很重要,这样\n
就会被解释为换行符。
<强> Working Demo 强>
答案 2 :(得分:1)
在这种情况下使用\R
代替。默认情况下,它匹配Unicode换行符序列。
preg_match('/(.+)\R+/', $_POST['text'], $title);
echo $title[1];
<强>参考强>: