面试所考察的点,以及一道关于正则的题目 Jun 26, 2017 缘由 上周末听到一个有关面试的点,然后想了一下。 市面上的JD一般按工作年限进行区分: 1-3年 考察重点一般是想象力,智力层次的题目会更多一些,拿来做储备和潜力股的。 3-5年 考察重点一般是语言层面和解决实际问题,这种人招聘过来是拿来就要用的。 5年以上 考察重点一般是系统层面的设计和分析,拿来做资深工程师或者专家的。 一道题目 输入一串整形数字(字符),按照西方国家习惯每三位加个逗号分割。 这里仅就正则如何做这个题目进行编码,不用正则的方法这里就不说了。 考察点主要是贪婪非贪婪匹配。 <?php require_once "../vendor/autoload.php"; $input = "12345678"; $regex = "#^(?<first>([0-9]{1,3})??)(?<others>([0-9]{3})*)$#"; $callback = function($match) { $arr = str_split($match["others"], 3); return empty($match["first"]) ? (implode(",", $arr)) : ("" . $match["first"] . "," . implode(",", $arr)); }; $output = preg_replace_callback($regex, $callback, $input); var_dump($output);