我有一个字符串,其中某处包含Style Name: Something
。我想要做的就是搜索Style Name:
并返回Something
或其他任何值。
我知道我需要对strpos
进行一些操作以搜索字符串,但是我非常想获得该值。
答案 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];
?>
答案 3 :(得分:0)
另一种选择是利用\K
忘记匹配的内容,并匹配0+次水平空白\h*
:
\bStyle Name:\h*\K\S+
$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
)