我有一个格式为
的字段5551112391^HUMAN^HUMAN-800-800^6-main^^
我如何只在字符5551112391
之前抓取数字^
?
你会用正则表达式吗?
答案 0 :(得分:2)
你可以利用爆炸:
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$arr = explode('^',$var);
$num = $arr[0];
使用正则表达式:
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
if(preg_match('/^(\d+)/',trim($var),$m)){
$num = $m[1];
}
答案 1 :(得分:1)
正则表达式矫枉过正,很好......
简单的转换为int怎么样?如果数字在数据的开头,那么将完全正常工作。并且肯定比正则表达式快......
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$num = (int)$var;
http://www.php.net/manual/en/language.types.type-juggling.php
答案 2 :(得分:0)
你是以完全错误的方式做到的 您将mysql数据库视为平面文本文件。但事实并非如此。
要仅从表中获取某些数据,您不应选择所有行,然后逐个进行比较,但让数据库为您执行此操作:
SELECT * FROM table WHERE number = 5551112391