2016-12-28 14 views
0

と一致していない私はこれが私のコードエラーの使用は、PHPのするpreg_match文字列

if(preg_match("/^C-[0-9]$/", $input_line, $output_array)) { 
    print_r($output_array); 
} else { 
    echo "NOT MATCH"; 
} 

ある

C-001 (match) 
C-002C (not match) 
C-003-C (match) 
D-004 (not match) 

取得文字列は、この形式に従っ(C-001とC-001-C)必要があるが、結果3を表示文字列(C-001、C-002C、C-003-C)、C-002Cは間違っています。

答えて

1

現在の正規表現では、C-を探しており、その後にという数字が続きます。ここで

^C-[0-9]{3}(-C)?$ 

が働いている:あなたは3桁の数字をしたい場合は、また別の -Cはあなたが (-C)?使用できるようにしたい場合は、 [0-9]{3}

^C-[0-9]{3}$ 

を使用する必要があります(疑問符はオプションのグループとしてそこにあります例:
https://regex101.com/r/0JHN43/1

そして、この1つはあなたが持っているpreg_matchブロックの内側にある:

if(preg_match("/^C-[0-9]{3}(-C)?$/", $input_line, $output_array)) { 
関連する問題