我需要获取字符串遵循此格式(C-001和C-001-C)
public function facebook_request(){
$data = array (
'redirect_uri' => base_url('authentication/handle_facebook_login'),
'scope' => 'email'
);
var_dump($data);
$this->load->library('connect');
redirect($this->connect->getLoginUrl($data));
}
public function handle_facebook_login() {
$this->load->library('connect');
if($this->connect->user) {
print_r($this->connect->user);
} else {
}
}
这是我的代码
C-001 (match)
C-002C (not match)
C-003-C (match)
D-004 (not match)
但结果显示3字符串(C-001,C-002C,C-003-C),C-002C错了,如何解决?
答案 0 :(得分:1)
在您当前的正则表达式中,您正在寻找C-
,然后是 1 数字。如果您想要3个数字,则应使用[0-9]{3}
^C-[0-9]{3}$
如果您还想允许其他-C
,可以使用(-C)?
(问号在那里作为可选组:
^C-[0-9]{3}(-C)?$
这是一个有效的例子:
https://regex101.com/r/0JHN43/1
这个位于preg_match
区块内:
if(preg_match("/^C-[0-9]{3}(-C)?$/", $input_line, $output_array)) {