【问题标题】:How to split words in new lines? [duplicate]如何在新行中拆分单词? [复制]
【发布时间】:2018-09-04 04:27:21
【问题描述】:

我已经阅读了一些关于 SO 的答案,其中一个建议我执行以下操作,但结果我得到了 array

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

$term = $_GET['s'];

如果我这样做echo $term;,我会得到America 2018,而我想拥有:

Location: America
Time: 2018

我尝试使用爆炸:

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

但结果是Array

【问题讨论】:

  • 用空间爆炸,然后 $term[0] 将是位置,$term[1] 将是时间
  • 尝试在空白处爆炸explode(' ',$term);
  • @Rajesh 好的,我明白了
  • 大声笑它来自 2K 代表的用户的基本问题..
  • @aswzen 是的,但我更像是一个前端开发人员,有 js 技能而不是后端和 php,然后我又尝试了其他解决方案,可能只是我忽略的一个小错误

标签: php regex


【解决方案1】:

可以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]+
    • + Quantifier — 匹配一次到无限次,尽可能多次,按需回馈(贪心)
    • A-z 介于 A(索引 65)和 z(索引 122)(区分大小写)之间的单个字符与字面上的字符匹配(区分大小写)
  • 第二捕获组(\d+)
    • \d+ 匹配一个数字(等于[0-9]
    • + Quantifier — 匹配一次到无限次,尽可能多次,根据需要回馈(贪婪)

【讨论】:

  • 这个可行,但太复杂了,另一个答案对我来说很简单
【解决方案2】:

您可以使用下面的sn-p进行空格分割并获取位置和时间:

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

【讨论】:

  • 很好,这行得通。我正要评论我添加了
    $term = explode(" ", $term); echo "Location: " . $term[0] . "<br>" ."Time: " . $term[1];
  • 谢谢,马上接受$term = explode(" ", $term); echo "<p>Location: " . $term[0] . "</p><br><p>" ."Time: " . $term[1] ."</p>"
【解决方案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;

欢呼

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 2013-12-10
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多