我正在尝试获取一个文本区域值,并通过正则表达式将其拆分为行。
因此,如果有人写了一行,然后输入,另一行,并输入,我将有一个数组,每行每个数组值
到目前为止,我想到的表达方式是:
(.+?)'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);
然而,数组中有一个对象总是空的,我正试图找到一种方法来消除它。
提前感谢。
您不需要正则表达式,只需使用explode()
,如下所示:
$lines = explode( "'n", trim( $input));
现在,用户的$input
的每一行都将是$lines
中的单个数组条目。
这将完成并消除数组开头和结尾的空行
explode("'n", trim($sourcestring));
参见示例:http://viper-7.com/pNqtvV
有各种类型的换行符。在HTML表单上下文中,您通常会收到行结尾的CR
LF
。如果使用'R
,则可以使用哑爆炸,但正则表达式可以捕获所有变体。因此'r'n
和'n
或'r
等将由处理
$lines = preg_split(':'R:', $text);
preg_split()
相当于PHPs explode()。所以您不需要使用preg_match_all
。