字符串后如何获取单词?

时间:2019-05-18 10:31:25

标签: php strpos

我有一个字符串,其中某处包含Style Name: Something。我想要做的就是搜索Style Name:并返回Something或其他任何值。

我知道我需要对strpos进行一些操作以搜索字符串,但是我非常想获得该值。

4 个答案:

答案 0 :(得分:1)

您可以使用preg_match_all

$input = "Sample text Style Name: cats and also this Style Name: dogs";
preg_match_all("/\bStyle Name:\s+(\S+)/", $input, $matches);
print_r($matches[1]);

此打印:

Array
(
    [0] => cats
    [1] => dogs
)

使用的模式\bStyle Name:\s+(\S+)匹配Style Name:,后跟一个或多个空格。然后,它匹配并捕获下一个单词。

答案 1 :(得分:1)

您不需要正则表达式。
两个简单的爆炸,您便得到了样式名称。

$str = "something something Style Name: Something some more text";

$style_name = explode(" ",explode("Style Name: ", $str)[1])[0];

echo $style_name; // Something

答案 2 :(得分:0)

向后看,

<?php
$string="Style Name: Something with colorful";
preg_match('/(?<=Style Name: )\S+/i', $string, $match);
echo $match[0];
?>

演示: https://3v4l.org/OICqF

答案 3 :(得分:0)

另一种选择是利用\K忘记匹配的内容,并匹配0+次水平空白\h*

\bStyle Name:\h*\K\S+

Regex demo | Php demo

$re = '/\bStyle Name:\h*\K\S+/m';
$str = 'Style Name: Something Style Name: Something Style Name: Something';
preg_match_all($re, $str, $matches);
print_r($matches[0]);

结果

Array
(
    [0] => Something
    [1] => Something
    [2] => Something
)