[英]How to get a number wrapped in parentheses from a string?
我有这个代码
$string = "23 asdasdasdasd.sma(33) asda sdas asd 23 2 3 54232 23d asd";
$reg = "??";
preg_match($reg, $string, $matches);
var_dump($matches);
我想得到这个数字: 33
。
我相信正则表达式应该是这样的
$reg = "\(([0-9]+)\)";
您也可以使用\\(\\K\\d+(?=\\))
那将匹配:
\( # Match ( \K # Reset the starting point of the reported match \d+ # Match one or more digits (?=\)) # Positive lookahead that asserts what follows is )
$reg = '/\(\K\d+(?=\))/';
该数字将以$matches[0];
因为您正在代码中调用preg_match()
,并且输入数据只有一个目标编号可用,所以您可以准确地使用这种最快/最简单的模式:
~\\(\\K\\d+~
( 模式演示 )(5个步骤&没有捕获组&没有环顾四周)
模式细分:
~ #pattern delimiter
\( #match (
\K #restart the fullstring match (forget previously matched characters)
\d+ #match one or more digits greedily
~ #pattern delimiter
*清楚一点,我想指出的是,我的模式假设紧随(
将会紧跟a )
。 这就是示例输入所提供的。
如果)
要匹配,以保持精度,然后捕获组(Tim的方式)将是下一个最有效的方式。 使用环视的所有正确模式都将比不使用环视的正确模式慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.