如何使用PHP解析文本区域中的文本符号

时间:2014-06-24 15:19:33

标签: php regex parsing textarea newline

我有一个文本区域,在提交表单时我需要解析文本。

例如,我需要从此文本区域获取第一个字符串,获取它并按原样保留整个文本。我不想使用nl2br函数,然后将模式与<br />一起使用。我可以解析\n个字符,如果是这样的话怎么样?我无法在我的PHP代码中执行此操作,但我可以在regex测试器链接到示例下面。

http://regex101.com/r/mK7hF2

这是我的代码,但不起作用:

preg_match('/(.+)\n\n/', $_POST['text'],$title);

$title = $title[0];

echo $title;

它什么都不返回。帮我改变一下,谢谢。

修改

enter image description here

3 个答案:

答案 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];

<强>参考