PHP字符串匹配求助:如何从指定文本中提取Job ID?
解决PHP正则提取Job ID的问题
你原代码的问题有两个:
- 正则里用了
\[和\]匹配方括号,但目标字符串里的job: 304390是被圆括号包裹的,得改成匹配转义后的圆括号\(和\) - 捕获组的规则
[A-Za-z\/]+只能匹配字母和斜杠,但Job ID是纯数字,得换成匹配数字的\d+
正确的代码如下:
$search_string = '/jobs/17 has no compatible crew with sufficient capacity (job: 304390)'; preg_match("/\(job: (\d+)\)/", $search_string, $match); print_r($match);
运行后$match数组里:
$match[0]是完整匹配的(job: 304390)$match[1]就是你要的Job ID:304390
如果要兼容job:前后可能出现的空格,可以把正则调整为:
preg_match("/\(job:\s*(\d+)\)/", $search_string, $match);
这里的\s*用来匹配0个或多个空白字符,适配更多格式情况。
内容的提问来源于stack exchange,提问作者Sanjoy
相关产品推荐
相关产品推荐

