Php 如何在此正则表达式中使用或来获取特定字符前的2或3个数字?
我的问题是如何修改下面的正则表达式,以从该字符串Php 如何在此正则表达式中使用或来获取特定字符前的2或3个数字?,php,regex,Php,Regex,我的问题是如何修改下面的正则表达式,以从该字符串160bhp,中获取数字,以及从90bhp,字符串中获取数字 目前,它只接受3个数字,而忽略2个数字。我在尝试,但运气不好 preg_match_all('/(\d{3})bhp\b,/', $str2b, $bhps); 还有一个额外的量词,允许您指定令牌可以重复多少次。语法为{min,max},其中min为零或表示最小匹配数的正整数,max为等于或大于min的整数,表示最大匹配数。如果存在逗号但省略了max,则最大匹配数是无限的 资料来源:
160bhp,
中获取数字,以及从90bhp,
字符串中获取数字
目前,它只接受3个数字,而忽略2个数字。我在尝试,但运气不好
preg_match_all('/(\d{3})bhp\b,/', $str2b, $bhps);
还有一个额外的量词,允许您指定令牌可以重复多少次。语法为{min,max},其中min为零或表示最小匹配数的正整数,max为等于或大于min的整数,表示最大匹配数。如果存在逗号但省略了max,则最大匹配数是无限的
资料来源:
Bt如果您希望它也匹配1bhp
和160000bhp
例如,请使用此选项:
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
它将捕获bhp
还有一个额外的量词,允许您指定令牌可以重复多少次。语法为{min,max},其中min为零或表示最小匹配数的正整数,max为等于或大于min的整数,表示最大匹配数。如果存在逗号但省略了max,则最大匹配数是无限的
资料来源:
Bt如果您希望它也匹配1bhp
和160000bhp
例如,请使用此选项:
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
它将捕获
bhp
左侧的任意数字,您只需将括号之间的值更改为{2,3}
preg_match_all('/(\d{2,3})bhp\b,/', $str2b, $bhps);
这基本上提供了要匹配的前面字符定义的最小/最大数量。您只需将括号之间的值更改为
{2,3}
preg_match_all('/(\d{2,3})bhp\b,/', $str2b, $bhps);
这基本上提供了要匹配的前面字符定义的最小/最大数目。
\d{3}
表示需要正好有3位数字。将{3}
更改为*
可以解决问题,并允许您检索bhp
之前的任意数量的连续数字
preg_match_all('/(\d*)bhp\b,/', $str2b, $bhps);
是一个优秀的在线正则表达式测试器。
\d{3}
说需要正好有3位数字。将{3}
更改为*
可以解决问题,并允许您检索bhp
之前的任意数量的连续数字
preg_match_all('/(\d*)bhp\b,/', $str2b, $bhps);
是一个优秀的在线正则表达式测试器。我猜您可能希望将其推广到匹配bhp之前的一个或多个数字(没有上限)?如果是这种情况,请使用以下方法:
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
preg_match_all('/(\d+)\s*bhp\b,/', $str2b, $bhps);
再进一步说,是否允许零个或多个空格字符出现在两个字符之间,例如“200 bhp”?如果是,请使用以下命令:
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
preg_match_all('/(\d+)\s*bhp\b,/', $str2b, $bhps);
最后,它是否需要不区分大小写,例如允许300BHP?如果是这样,请在最后一个斜杠后加一个i
:
preg_match_all('/(\d+)\s*bhp\b,/i', $str2b, $bhps);
我猜你可能想把它推广到匹配必和必拓之前的一个或多个数字(没有上限)?如果是这种情况,请使用以下方法:
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
preg_match_all('/(\d+)\s*bhp\b,/', $str2b, $bhps);
再进一步说,是否允许零个或多个空格字符出现在两个字符之间,例如“200 bhp”?如果是,请使用以下命令:
preg_match_all('/(\d+)bhp\b,/', $str2b, $bhps);
preg_match_all('/(\d+)\s*bhp\b,/', $str2b, $bhps);
最后,它是否需要不区分大小写,例如允许300BHP?如果是这样,请在最后一个斜杠后加一个i
:
preg_match_all('/(\d+)\s*bhp\b,/i', $str2b, $bhps);