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