如何使用正则表达式获取特定的字符串?

时间:2019-04-30 13:03:54

标签: php

我有这个字符串Re #A4FKA-F2NW9 123test,我想从带有正则表达式的字符串中获取这个数字A4FKA-F2NW9,有人可以帮我如何获取它吗?

3 个答案:

答案 0 :(得分:3)

您可以使用以下正则表达式提取该数据:

#\K\S+

这将先搜索#,然后搜索所有非空格字符(\S+),直到遇到一个为止。 \K使正则表达式中的先前字符不返回。

https://regex101.com/r/w44Jv1/1/

您可以通过添加定界符将其与preg_match一起使用。

$str = 'Re #A4FKA-F2NW9 123test';
preg_match('/#\K\S+/', $str, $matches);
echo $matches[0];

https://3v4l.org/3lOK8

您也可以使用explodestrpossubstr来执行此操作。

答案 1 :(得分:2)

  

substr()-返回字符串的一部分

     

strpos()-查找字符串中第一次出现的子字符串的位置

     

strrpos()-查找字符串中最后一次出现子字符串的位置

您可以使用substrstrrposstrpos

$string = "Re #A4FKA-F2NW9 123test";
$substring = substr($string, strpos($string, '#')+1, (strrpos($string, ' ')- strpos($string, '#')-1));

答案 2 :(得分:1)

您不需要正则表达式。
您只需要爆炸两下,一个在#上,一个在空间上。

$str = 'Re #A4FKA-F2NW9 123test';

echo $result = explode(" ",explode("#", $str)[1])[0];
//A4FKA-F2NW9