2012-02-16 2 views
1

저는 frontlinesms에서 호출하는 PHP 스크립트에서 작업 중이며 문법을 설정했습니다. 문법문법에 대한 PHP의 정규식

<phrase> @ <phrase> 
<phrase> = are a series of words composed of [a-zA-Z0-9] 

하고 @ 한 번만 발생하고 난 이것을 제대로 작동 할 수없는 두

사이 여야합니다. 여기에 내 초기 코드는 다음과 같습니다

preg_match_all("/(^[a-zA-Z0-9])@([a-zA-Z0-9])$/", $message_content, $matches, PREG_OFFSET_CAPTURE); 
print_r($matches); 

$message_content 

문자열

편집을 포함 : 내가 여기서 뭘 원하는 것은 $의 MESSAGE_CONTENT에 저장된 입력 문자열이 주어진 문법의 규칙을 따른다 여부를 확인하는 것입니다 @. print_r ($ matches)가 Array()를 출력하는 동안 true 또는 false를 반환하기 만하면됩니다. 정규식은 시도해보십시오 @

정확히 하나 개의 문자 양쪽 일치하는 것이다

답변

1

preg_match_all("/^([A-Za-z0-9 ]+)@([A-Za-z0-9 ]+)$/", $message_content, $matches, PREG_OFFSET_CAPTURE); 
print_r($matches); 
+0

안녕하세요! 문법에 따라 문자열이 유효한지 여부를 아직 확인할 수없는 것 같습니다. – braindead

+0

"문법에 기초한"이란 무엇입니까? –

+0

입력이 올바른지 여부를 문법 규칙에 따라 반환하지 않는 것 같습니다. – braindead

1

^([A-Za-z0-9 ]+)@([A-Za-z0-9 ]+)$ 

+ 하나 이전의 것보다 (이 경우 하나 이상의 알파 - 숫자 또는 수단 공백 문자)

후자가 두 공백을 제거한다는 의미 인 경우 "일련의 단어"가 아니라 "일련의 단어"라고 말했기 때문에 공백을 포함 시켰습니다.

+0

인사를하려고! print_r의 출력은 여전히 ​​이전 정규 표현식을 사용하여 동일합니다 패턴이 올바른지 계속 확인하지 않습니다 – braindead

+0

이제 알았습니다. 감사! – braindead