2009-09-16 2 views
5

나는 "m"수정을 시도했지만 작동하지했습니다공백을 구분하지 않고 PHP에서 정규 표현식 모드를 사용하려면 어떻게해야합니까?

$reg = '/... 
     /m'; 

preg_match($reg,...,$match); 

편집

아니면 내가 너무에, ENTER TAB과 같은 공백을 무시할 수있는 수정이 필요합니다. 정규식에서 공백을 제거하면 작동하기 때문에.

또 다시 수정 : 정규 표현식

"/aaaa b/", 
"/aaaa 
b/" 

같은 일 것을 말하자면, 그냥 정규식 자체에 공백을 무시 있도록

나는 수정이 필요합니다.

+0

당신이 더 많은 상황에 맞는 세부 상황을 자세히 설명 할 수 있습니다에 공백을 무시하는? – Eimantas

+0

정규 표현식이 무엇인지 아는 것이 좋습니다. 필요한 경우 새 줄이 기본적으로 일치하지 않습니다. 정말 아무것도 일치하는 s 수정자를 사용 ... – RageZ

+0

다른 부분은 모두 괜찮지 만 정규 표현식에서 공백을 무시하는 정규 표현식 파서가 필요합니까? – omg

답변

8

당신이 필요로하는 수정이 x

print_r(preg_match('/aaa 
     bbb/x', 'aaabbb')); 
+0

마지막으로 저를 이해합니다! 건배! 영리한 사람! – omg

0

정규식에서 줄 바꿈과 일치하지 않는 점에 문제가있을 수 있습니다. s 수정자를 사용하면 새로운 줄이라도 모든 점과 일치하게됩니다.

희망이

그것을 줄 것이라고하는 데 도움이

/aaaaaaa.+b/ms 

편집기의 (유닉스 또는 창) 줄 바꿈이, CR 다른 문자 수를 따라 있기 때문에 \ n을를 사용하는 것이 더 좋은 연습이 될 것이다 + LF 또는 LF만으로 코드를 이식 할 수 없습니다.

또는 정말 레지 전

function formatRegEx($reg){ 
return preg_replace('/(\s+)/m', '\s+', $reg); 
} 
+0

매우 길기 때문에 정규식에서 RETURN을 사용해야합니다. 그렇지 않으면 무엇을하고 있는지 알기가 어려울 것입니다. 어쨌든, 어떻게 든, 그런 요구가 있습니다. 그러나이 모드를 활성화하는 방법은 무엇입니까? – omg