如何拆分新行中的单词?

时间:2018-03-26 05:27:28

标签: php regex

我在SO上读过几个答案,其中一个建议我做以下操作,但结果是array

基本上我们在搜索结果上,我们有:

$term = $_GET['s'];

如果我echo $term;我得到America 2018,而我希望:{/ p>

Location: America
Time: 2018

我尝试使用爆炸:

$term = explode("\n", $term); echo $term;

但结果为Array

3 个答案:

答案 0 :(得分:6)

preg_replace时无需爆炸。例如:

$str = "America 2018";
$result = preg_replace("/([A-z]+) (\d+)/", "Location: $1\nTime:$2", $str);
echo $result;

<强>故障:

/([A-z]+) (\d+)/

  • 第一捕获小组([A-z]+)
    • 匹配[A-z]+
    • 下方列表中的单个字符
    • +量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)
    • A-z A(索引65)和z之间的单个字符(索引122)(区分大小写)与字符字面匹配(区分大小写)
  • 第二捕获小组(\d+)
    • \d+匹配一个数字(等于[0-9]
    • +量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)

答案 1 :(得分:3)

您可以使用下面的代码段拆分空格并获取位置和时间:

$term = explode(" ", $term); 
echo "Location: " . $term[0] . "\n Time: " . $term[1];

答案 2 :(得分:3)

他想要简单的方法..

所以这就是它(只有一行)

使其像America 2018

一样
$term = explode("\n", $term); $term = explode(" ",$term[0])[1]." ".explode(" ",$term[1])[1]; echo $term;

使它像

Location: America Time: 2018

$term = explode("\n", $term); $term = "Location: ".$term[0].PHP_EOL."Time: ".$term[1]; echo $term;

啦啦队