2014-10-30 2 views
-3

이것은 PHP의 regex에서 처음 시도한 것입니다. PHP에서 regex를 사용하여 두 단어 집합을 포함하는 문장을 매치하고 싶습니다. 아래처럼 테스트했지만 작동하지 않습니다.경고 : preg_match() : PHP의 알 수없는 수정 자

$regex= (red|green|round|sweet)[^.]*(apple|apples)  
$sentence = "I have two red apples." 

if(preg_match($regex, $sentence)) 
{ 
    echo 'MATCH!!!'; 
} else { 
    echo 'No MATCH!!!'; 
} 

PHP에서 오류 메시지가 표시됩니다.

Warning: preg_match(): Unknown modifier [ 
+4

'$ 정규식 = "/ (빨간색 | 녹색 | 라운드 | 달콤한).^* (사과 | 사과) /";'- 당신은 당신이 무엇을 게시했다대로 테스트하는 경우 플러스,해야 시작할 구문 분석 오류가 발생했습니다. –

+0

@ Fred-ii- 정규식을 테스트 한 결과 작동합니다. 그냥 PHP가 아닙니다. 몇 가지 이유가있어서 [] – Cryssie

+0

에 게시 된 질문에 두 줄의 세미콜론이 누락되어 첫 번째 인용 부호와 식별자가 누락되었습니다. 나는 시험하고 일했다. –

답변

1

제가 말했듯이, 이것은 첫 번째 줄의 따옴표와 식별자를 생략하고 두 줄에 세미콜론이 누락 된 곳에서 테스트되고 작동합니다.

<?php 
$regex= "/(red|green|round|sweet)[^.]*(apple|apples)/"; 
$sentence = "I have two red apples."; 

if(preg_match($regex, $sentence)) 
{ 
    echo 'MATCH!!!'; 
} else { 
    echo 'No MATCH!!!'; 
} 
+0

감사합니다. 나는 별도로 정규식을 테스트했다. 나는 그것이 필요한 모든 것이 앞뒤로 "/"라고 생각하지 않았습니다. – Cryssie

+0

@ Cryssie 환영합니다. Cryssie. '/'식별자는 PHP를 통해 실행될 때 필요합니다. –

2

PHP 정규식은 문자를 구분해야합니다.

$regex = '/(red|green|round|sweet)[^.]*(apple|apples)/'; 

/은이 경우 별도의 문자입니다.

관련 문제