2011-07-03 3 views
2

힘들지는 않지만 내 PHP 경험은 매우 기본적인 것으로 알고 있습니다.PHP - ereg를 preg_match로 변환

foreach ($name as $name) 
{ 
if (preg_match("^\.",$name)) { 
echo "bla bla bla"; 
Die(); 
} 
if (preg_match("\<", $name)) { 
echo "bla bla bla"; 
Die(); 
} 
if (preg_match("\[", $name)) { 
echo "bla bla bla"; 
Die(); 
} 
if (preg_match("\`", $name)) { 
echo "bla bla bla"; 
Die(); 
} 
} 

답변

0

귀하의 경우에는 strpos()=== operator 또는 심지어 substr()을 간단하게 사용할 수 있습니다. 상수 문자열을 일치시키기 위해 정규식이 필요하지 않습니다.

현재 코드를 유지하려면 원하는 구분 기호로 표현식을 묶기 만하면됩니다. 이러한 모든 유효합니다

'/^\./' 
'@^\[email protected]' 
'#^\.#' 

당신은 Pattern SyntaxDifferences from POSIX regex에서 추가 정보를 찾을 수 있습니다.

+0

감사 남자, 지금은 초보자,이를 사용합니다 위해 나는 내 코드를 업데이트와 동일하게 두는 편이 더 좋다. – Hatem

0

preg_match 함수에는 구분 기호가 필요합니다. 구분 기호는 문자열의 시작과 끝에 존재하는 어떤 것과도 동일 할 수 있습니다.

예 : 귀하의 경우

$RegExp = "/My regular expression"; 
$RegExp = "#My Regular expression#"; 
$RegExp = "%My Regular expression%"; 

$isMatched = preg_match($RegExp, $target, $matched); 

if($isMatched) { 
    print_r($matched); 
} else { 
    //FAIL 
} 

, 당신은 간단하게 만들 수 있습니다

$RegExp = "/(\.|\<|\[|\`)/"; 

또는

$RegExp = "/[.<[`]/"; 
+0

덕분에 내 코드가 짧을거야. D – Hatem