我有一个看起来像这样的字符串:
'p10005c4'
我需要将productId 10005和colorId 4从该字符串中提取到这些变量中:
$的productId $ colorId
productId是> 10000。 colorId> 1。
如何使用正则表达式做到干净整洁?
答案 0 :(得分:3)
如果你的字符串总是pXXXcXX
,我建议你放弃正则表达式,只使用几个字符串函数。
list($productId,$colorId) = explode('c',substr($string,1),2);
答案 1 :(得分:2)
您可以使用以下正则表达式:
'/p(\d+)c(\d+)/'
如果您想确保产品代码是5位数字:
'/p(\d{5})c(\d+)/'
答案 2 :(得分:2)
这应该可以使用以下正则表达式:
/p(\d+)c(\d+)/
这基本上意味着,匹配任何由p组成的字符串,后跟一个或多个数字,然后是c,然后是一个或多个数字。 括号表示捕获组,因为您想要捕获两个ID,所以它们被它们包围。
要将此用于您的目的,您需要执行以下操作:
$str = 'p10005c4';
$matches = array();
preg_match('/p(\d+)c(\d+)/', $str, $matches);
$productId = $matches[1];
$colorId = $matches[2];
有关正则表达式入门的详细信息,您可能需要查看Regular-Expressions.info。