php - preg_match foreach

标签 php regex

所以我使用 preg_match 来获取 # 之后的任何文本,直到字符串中的空格。但是,如果它在字符串中多次出现,它只会返回第一个。这是我目前所拥有的

$text = '#demo1 #demo2 some text #blah2';
$check_hash = preg_match("/([#][a-zA-Z-0-9]+)/", $text, $hashtweet);
foreach ($hashtweet as $ht){
echo $ht;
}

echo $ht; 输出 #demo1#demo1 当它应该输出前面带 # 的所有 3 个单词时。非常感谢任何帮助。

最佳答案

您想使用 preg_match_all .

例子:

<?php 

$text = '#demo1 #demo2 some text #blah2';
$check_hash = preg_match_all("/([#][a-zA-Z-0-9]+)/", $text, $hashtweet);
foreach ($hashtweet[1] as $ht){
  echo $ht;
}

关于php - preg_match foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559876/

相关文章:

php - mysql连接三个表按第三个顺序

php - 使用 PHP 从 MySQL 表中提取数据

python - 如何使用拆分或正则表达式从 python 中的字符串获取子字符串

Python如何在数据框中应用.replace以更改大量值

python - 匹配两个具有最大重复次数的唯一字符。如何使用正则表达式提取它?

php正则表达式获取href标签内的自定义url和字符串

php - 返回资源 ID #5 的 mySQL 查询

mysql - 将带分隔符的子字符串与查询中的列表进行匹配

php - 将循环中的 str_replace() 更改为单个 preg_replace() 调用?

php - 如何使用 Datamapper 计算 Codeigniter 中查询返回的行数