PHP正则表达式:如何在一行代码中获取值?

PHP正则表达式:如何在一行代码中获取值?,php,regex,Php,Regex,问题是如何以最短的方式从preg\u match()函数中获取值 比如说,我知道我的字符串以数字结尾。我敢肯定!100%!! 它是石头!!! 我需要的是价值 到目前为止我是这样做的 preg_match('/(\d+)$/', $mystring, $m); echo $m[1]; 有没有一种方法可以在一行代码中实现这一点 我试过: echo preg_match('/(\d+)$/', $mystring, $m)[1]; 返回错误 有什么想法吗?改用: 说明: ^-在字符串开头断言位置

问题是如何以最短的方式从
preg\u match()
函数中获取值

比如说,我知道我的字符串以数字结尾。我敢肯定!100%!! 它是石头!!! 我需要的是价值

到目前为止我是这样做的

preg_match('/(\d+)$/', $mystring, $m);
echo $m[1];
有没有一种方法可以在一行代码中实现这一点

我试过:

echo preg_match('/(\d+)$/', $mystring, $m)[1];
返回错误

有什么想法吗?

改用:

说明:

  • ^
    -在字符串开头断言位置
  • *?
    -匹配任何字符(换行符除外)
  • \d+
    -匹配(并捕获)一个或多个数字
  • $
    -在字符串末尾断言位置
  • $1
    -第一个捕获组捕获的内容
改用:

说明:

  • ^
    -在字符串开头断言位置
  • *?
    -匹配任何字符(换行符除外)
  • \d+
    -匹配(并捕获)一个或多个数字
  • $
    -在字符串末尾断言位置
  • $1
    -第一个捕获组捕获的内容

    • 我并不是在提倡这一点,但在这种情况下,您可以这样做:

      echo $m[preg_match('/(\d+)$/', $mystring, $m)];
      
      它太复杂和脆弱,无法放入可维护的源代码中,但我认为它是指针和引用传递的一个有趣的例子,所以我想把它放在这里。它依赖于只有一个匹配(由
      preg\u match
      保证,但不是
      preg\u match\u all
      )和第一组中的所需文本,但它有效


      我不是在提倡这一点,但在这种情况下,您可以这样做:

      echo $m[preg_match('/(\d+)$/', $mystring, $m)];
      
      它太复杂和脆弱,无法放入可维护的源代码中,但我认为它是指针和引用传递的一个有趣的例子,所以我想把它放在这里。它依赖于只有一个匹配(由
      preg\u match
      保证,但不是
      preg\u match\u all
      )和第一组中的所需文本,但它有效


      PHP 5.4中提供了
      myFunction()[index]
      语法:@WesleyMurch+1,但这对于askers示例仍然不起作用,因为
      preg\u match
      返回一个int。
      myFunction()[index]
      语法在PHP5.4中可用:@WesleyMurch+1,但这对于askers示例仍然不起作用,因为
      preg\u match
      返回int.PERFECT!这正是我需要的!谢谢你,艾玛!删除错误评论。干得好+1完美!这正是我需要的!谢谢你,艾玛!删除错误评论。干得好+1