我正在尝试获取文本区域值并通过正则表达式将其分割为行。
所以,如果有人写了一行然后输入另一行并输入我将有一个数组,每个数组的每行数值
到目前为止我提出的表达是:
(.+?)\n|\G(.*)
这就是我使用它的方式(来自我用来测试表达式的网站http://myregextester.com/)
$sourcestring="
this is a sentense yeaa
interesting sentense
yet another sentese
";
preg_match_all('/(.+?)\n|\G(.*)/',$sourcestring,$matches);
echo "<pre>".print_r($matches,true);
然而,数组中有1个对象总是为空,我正试图找到一种摆脱它的方法。
先谢谢。
答案 0 :(得分:1)
您不需要正则表达式,只需使用explode()
,就像这样:
$lines = explode( "\n", trim( $input));
现在,用户$input
的每一行都是$lines
中的单个数组条目。
答案 1 :(得分:1)
答案 2 :(得分:0)
有各种类型的换行符。在HTML表单上下文中,您通常会收到CR
LF
行结尾。如果你使用\R
,那么正在进行愚蠢的爆炸,但正则表达式将捕获所有变体。因此,\r\n
和\n
或\r
和其他人将由以下人员处理:
$lines = preg_split(':\R:', $text);
preg_split()
相当于PHPs explode()。因此,您无需使用preg_match_all
。