Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取角色后面出现的所有内容_Php_String - Fatal编程技术网

Php 获取角色后面出现的所有内容

Php 获取角色后面出现的所有内容,php,string,Php,String,如何获取字符串后面出现的所有内容并将其返回到数组中 假设我有以下几点 $text = 'Hello !Jack, How is !Angela? What is !Ahmad93 doing?'; 我需要把杰克、安吉拉和艾哈迈德93排成一列,还有什么办法吗? 我的假设: 所有名称都以感叹号(!)开头 所有名称仅包含字符[a-zA-Z0-9](字母数字) 您可以将其更改为,但也将匹配下划线,但我不确定这是否是您想要的 preg_match_all('/!(\w+)/', $string, $

如何获取字符串后面出现的所有内容并将其返回到数组中 假设我有以下几点

$text = 'Hello !Jack, How is !Angela? What is !Ahmad93 doing?';
我需要把杰克、安吉拉和艾哈迈德93排成一列,还有什么办法吗?

我的假设:

  • 所有名称都以感叹号(!)开头
  • 所有名称仅包含字符[a-zA-Z0-9](字母数字)
您可以将其更改为,但也将匹配下划线,但我不确定这是否是您想要的

preg_match_all('/!(\w+)/', $string, $matches);
$uniqueNames = array_unique($matches[1]);
注意:由于我使用preg_match_all,所以不需要/g修饰符

试试看

$text = 'Hello !Jack, How is !Angela? What is !Ahmad93 doing?';
preg_match_all("/!([a-zA-Z0-9]+)/", $text, $pat_array);
print_r($pat_array[1]); //Array ( [0] => Jack [1] => Angela [2] => Ahmad93 ) 
看起来所有这些“名字”都是以感叹号开头的,对吗?看看regex101.com,试着为它创建一个regex:),它应该为您指明正确的方向。