PHP的preg_match_all简单的正则表达式返回空值

二十个Labakojis

我需要从一小段文本中提取一组预定义的主题标签,然后提取紧随其后的数字(如果有)。例如。我需要从“使用#other30主题标签测试字符串”中提取30。我认为preg_match_all是正确的选择。

一些测试代码:

$hashtag = '#other';
$string  = 'Test string with #other30 hashtag';
$matches = [];
preg_match_all('/' . $hashtag . '\d*/', $string, $matches);
print_r($matches);

输出:

Array
(
    [0] => Array
        (
            [0] => #other30
        )
)

完美...按预期工作。现在提取数字:

$string = $matches[0][0]; // #other30
$matches = [];
preg_match_all('/\d*/', $string, $matches);
print_r($matches);

输出:

Array
(
    [0] => Array
        (
            [0] =>
            [1] =>
            [2] =>
            [3] =>
            [4] =>
            [5] =>
            [6] => 30
            [7] =>
        )
)

什么?看起来它正在尝试匹配每个字符?

我知道一些与preg_match_all相关的答案(一个两个),但是它们都使用带括号的子模式。根据文档-这是可选的。

我想念什么?我如何简单地将所有匹配项放入与/ \ d * /这样的基本正则表达式匹配的数组中,似乎在php中似乎没有更合适的功能。

我从没想过我会用PHP中的这样一个基本的东西挠头。非常感激。

穆罕默德·比拉勒(Muhammad Bilal)

您需要更换:

preg_match_all('/\d*/', $string, $matches);

和:

preg_match_all('/\d+/', $string, $matches);

替换*+

因为

* 匹配零次或多次。

+ 匹配一次或多次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式PHP preg_match_all

来自分类Dev

PHP preg_match_all正则表达式

来自分类Dev

说明此PHP正则表达式的含义(preg_match_all)

来自分类Dev

php preg_match_all与正则表达式,字符串解析。多行

来自分类Dev

preg_match_all PHP的条件正则表达式模式

来自分类Dev

正则表达式无法正常工作-PHP preg_match_all

来自分类Dev

PHP /正则表达式-警告:preg_match_all()[function.preg-match-all]:未知修饰符

来自分类Dev

使用preg_match_all中的php对/数组创建多维递归正则表达式

来自分类Dev

PHP的preg_match_all:正则表达式使用转义符获取以管道分隔的字段

来自分类Dev

使用正则表达式和php preg_match_all获取括号之间的字符串

来自分类Dev

正则表达式/ preg_match_all与可选匹配

来自分类Dev

需要正则表达式帮助(preg_match_all)

来自分类Dev

使用正则表达式(preg_match_all)从括号中排除数据

来自分类Dev

网址路由的preg_match_all正则表达式问题

来自分类Dev

preg_match_all找不到正则表达式的出现

来自分类Dev

正则表达式获取拆分电子邮件部分preg_match_all

来自分类Dev

正则表达式,用于preg_match_all价格

来自分类Dev

sql解析带有正则表达式preg_match_all的case结束表达式

来自分类Dev

sql解析带有正则表达式preg_match_all的case结束表达式

来自分类Dev

PHP preg_match_all返回空

来自分类Dev

PHP preg_match_all返回空

来自分类Dev

正则表达式返回空值

来自分类Dev

正则表达式preg_match_all测试捕获两个以上新行失败

来自分类Dev

如何从preg_match_all正则表达式中的子模式中更正结果?

来自分类Dev

正则表达式preg_match_all测试以捕获两个以上新行失败

来自分类Dev

如何从preg_match_all正则表达式中的子模式中更正结果?

来自分类Dev

PHP:preg_match_all() - 如何使用正则表达式正确查找所有出现的或分隔的子字符串?

来自分类Dev

正则表达式 - 如果有特定单词且不区分大小写,则匹配整行与 PHP preg_match_all

来自分类Dev

PHP-preg_match正则表达式

Related 相关文章

  1. 1

    正则表达式PHP preg_match_all

  2. 2

    PHP preg_match_all正则表达式

  3. 3

    说明此PHP正则表达式的含义(preg_match_all)

  4. 4

    php preg_match_all与正则表达式,字符串解析。多行

  5. 5

    preg_match_all PHP的条件正则表达式模式

  6. 6

    正则表达式无法正常工作-PHP preg_match_all

  7. 7

    PHP /正则表达式-警告:preg_match_all()[function.preg-match-all]:未知修饰符

  8. 8

    使用preg_match_all中的php对/数组创建多维递归正则表达式

  9. 9

    PHP的preg_match_all:正则表达式使用转义符获取以管道分隔的字段

  10. 10

    使用正则表达式和php preg_match_all获取括号之间的字符串

  11. 11

    正则表达式/ preg_match_all与可选匹配

  12. 12

    需要正则表达式帮助(preg_match_all)

  13. 13

    使用正则表达式(preg_match_all)从括号中排除数据

  14. 14

    网址路由的preg_match_all正则表达式问题

  15. 15

    preg_match_all找不到正则表达式的出现

  16. 16

    正则表达式获取拆分电子邮件部分preg_match_all

  17. 17

    正则表达式,用于preg_match_all价格

  18. 18

    sql解析带有正则表达式preg_match_all的case结束表达式

  19. 19

    sql解析带有正则表达式preg_match_all的case结束表达式

  20. 20

    PHP preg_match_all返回空

  21. 21

    PHP preg_match_all返回空

  22. 22

    正则表达式返回空值

  23. 23

    正则表达式preg_match_all测试捕获两个以上新行失败

  24. 24

    如何从preg_match_all正则表达式中的子模式中更正结果?

  25. 25

    正则表达式preg_match_all测试以捕获两个以上新行失败

  26. 26

    如何从preg_match_all正则表达式中的子模式中更正结果?

  27. 27

    PHP:preg_match_all() - 如何使用正则表达式正确查找所有出现的或分隔的子字符串?

  28. 28

    正则表达式 - 如果有特定单词且不区分大小写,则匹配整行与 PHP preg_match_all

  29. 29

    PHP-preg_match正则表达式

热门标签

归档