如何获取字符串中 () 之前的每个单词
How to get every words before () in a string
如何获取 ()
中单词之前的每个单词
$str = "There are some (Cat) which are wild";
$str = "Animal (Cat) is a domestic pet";
echo implode(" ", array_slice(explode(" ", $str), 0, 2));
我希望输出为 'There are some (Cat)' 和 'Animal (Cat)'。
假设这是你上一个问题的延续,这就是我要做的。
我将按照以下步骤解决此问题:
- 通过在 space 字符上使用
explode()
将字符串转换为数组。
- 为数组创建映射器函数以仅获取第一个字符。
- 在数组元素中搜索
(
并找到索引。
- 将数组从
0
切片到以 (
开头的元素的下一个元素。
- 使用 space 字符将数组的所有元素与
implode()
连接起来。
所以以上几点将为您提供此代码:
<?php
$str = "Animal (Cat) is a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
我已经缓存了 $arr
的值,因为我正在使用它两次。
下面是完整的代码和几个相同的示例:
<?php
function arrMapFirst($a) {
return $a[0];
}
$str = "Animal (Cat) is a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
echo PHP_EOL;
$str = "A Cute Animal (Cat) is a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
echo PHP_EOL;
$str = "An Angry Animal (Wolf) is not a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
在上面的例子中,我使用了这三个字符串:
- 动物(猫)是家养宠物
- 可爱的动物(猫)是家养宠物
- 愤怒的动物(狼)不是家养宠物
我得到以下预期输出:
- 动物(猫)
- 一只可爱的动物(猫)
- 愤怒的动物(狼)
这是一个相同的沙盒:Get all words before and including the first element starting with (
。
希望对您有所帮助。
如何获取 ()
$str = "There are some (Cat) which are wild";
$str = "Animal (Cat) is a domestic pet";
echo implode(" ", array_slice(explode(" ", $str), 0, 2));
我希望输出为 'There are some (Cat)' 和 'Animal (Cat)'。
假设这是你上一个问题的延续,这就是我要做的。
我将按照以下步骤解决此问题:
- 通过在 space 字符上使用
explode()
将字符串转换为数组。 - 为数组创建映射器函数以仅获取第一个字符。
- 在数组元素中搜索
(
并找到索引。 - 将数组从
0
切片到以(
开头的元素的下一个元素。 - 使用 space 字符将数组的所有元素与
implode()
连接起来。
所以以上几点将为您提供此代码:
<?php
$str = "Animal (Cat) is a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
我已经缓存了 $arr
的值,因为我正在使用它两次。
下面是完整的代码和几个相同的示例:
<?php
function arrMapFirst($a) {
return $a[0];
}
$str = "Animal (Cat) is a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
echo PHP_EOL;
$str = "A Cute Animal (Cat) is a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
echo PHP_EOL;
$str = "An Angry Animal (Wolf) is not a domestic pet";
$arr = explode(" ", $str);
echo implode(" ", array_slice($arr, 0, array_search('(', array_map("arrMapFirst", $arr)) + 1));
在上面的例子中,我使用了这三个字符串:
- 动物(猫)是家养宠物
- 可爱的动物(猫)是家养宠物
- 愤怒的动物(狼)不是家养宠物
我得到以下预期输出:
- 动物(猫)
- 一只可爱的动物(猫)
- 愤怒的动物(狼)
这是一个相同的沙盒:Get all words before and including the first element starting with (
。
希望对您有所帮助。