【问题标题】:How to extract the last 2 delimitered numbers using regex如何使用正则表达式提取最后 2 个分隔数字
【发布时间】:2021-05-08 00:16:45
【问题描述】:

我必须提取number-number 的第一个实例。例如,我想从字符串bnjdfg/dfg.vom/fdgd3-8236497-234783/dfg8jfg.vofg 中提取8236497-234783。该字符串没有明显的结构,除了数字后跟一个破折号和一个数字,这是我要提取的内容。

我要提取的内容可能在字符串的开头、中间或结尾,或者整个字符串本身只是一个number-number

$b = "bnjdfg/dfg.vom/fdgd3-8236497-234783/dfg8jfg.vofg";

preg_match('\d-\d', $b, $matches);

echo($matches[0]);
// Expecting to print 8236497-234783

【问题讨论】:

  • 您缺少正则表达式周围的分隔符。
  • @Barmar 你是什么意思
  • 您没有阅读有关 PHP 的 preg 函数的文档或教程吗?他们解释它。

标签: php regex preg-match


【解决方案1】:
  1. 您缺少正则表达式周围的分隔符。 PHP 的preg 函数要求正则表达式以标点符号开头,并在正则表达式末尾查找匹配字符(因为标志可以放在第二个分隔符之后)。
  2. \d 只匹配一个数字。如果你想匹配一串数字,你应该写\d+
  3. 你应该要求数字被\b包围,否则它将匹配fdgd3末尾的3
preg_match('/\b\d+-\d+\b/', $b, $matches);

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多