我有这个字符串Re #A4FKA-F2NW9 123test
,我想从带有正则表达式的字符串中获取这个数字A4FKA-F2NW9
,有人可以帮我如何获取它吗?
答案 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];
您也可以使用explode
或strpos
和substr
来执行此操作。
答案 1 :(得分:2)
substr()-返回字符串的一部分
strpos()-查找字符串中第一次出现的子字符串的位置
strrpos()-查找字符串中最后一次出现子字符串的位置
您可以使用substr
,strrpos
,strpos
$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