【问题标题】:PHP: extract numbers between two strings using regex [closed]PHP:使用正则表达式提取两个字符串之间的数字[关闭]
【发布时间】:2013-07-26 16:59:08
【问题描述】:

我有一个可以采用 3 种形式的字符串(如果需要,也可以采用两种形式):

  • 显示 3 个结果
  • 显示 79 个结果中的 1 - 12 个
  • 显示 2,513 个结果中的 1 - 12 个

我想要的是用粗体(不带逗号)得到数字......

我可以使用许多字符串函数和条件来做到这一点,但我很确定使用正则表达式有一种简单而优雅的方法......不幸的是,这不是我的强项。

【问题讨论】:

  • 你只想要Results前面的号码?
  • 为什么要贬低人们?该网站的存在是为了回答此类 n00b 问题! :-/
  • 实际上,该网站的目标是帮助新手修复他们的程序。你应该做一些初步的研究,尝试自己解决问题,展示你的尝试,然后我们可以告诉你哪里出错了。你是通过犯错和纠正错误来学习的,而不是通过灌输给你的解决方案来学习。
  • @Barmar,我现在同意这个问题很愚蠢,因为这很容易......我现在正在练习改进,但当时我真的不知道如何实现它,我用谷歌搜索几个小时都没有成功......所以我仍然认为这些反对意见是卑鄙的:
  • 如果菜鸟来这里,这里有另一种方法 =) : regex101.com/r/vE1xC4

标签: php regex string numbers extract


【解决方案1】:

使用这个:

preg_match('/([0-9,]+) Results/', $string, $match);
$number = str_replace(',', '', $match[1]);

【讨论】:

    【解决方案2】:
    $number = preg_replace('/^.*([\d,]+) Results$/', '$1', $original);
    $number = preg_relpace('/,/', '', $number);
    

    【讨论】:

    • 使用正则表达式删除逗号肯定是矫枉过正,不是吗?
    • @jim,更正第二个preg_re*lpace...但仍然不起作用...例如它给出的结果:Showing 1 - 12 of 2513 Results
    猜你喜欢
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多