2012-11-08 3 views
2

나는 스팸봇을 다루고 있으며 말도 안되는 게시물을 막기 위해 항상 특정 방식으로 [8 자 a-zA-Z] [9 자 a-zA-Z] [10 자 a -zA-Z] ...문자열 길이 8, 9, 10 문자를 포착하는 PHP 정규식은 무엇입니까?

정확한 패턴을 캡처하여 차단할 수 있습니다.

예는 다음과 같습니다

EifnBTVK zljhGBZty poozgzbdax JZBnNbbpt rbpdig LfpMXMEDqay LfjrLSDQ saxaUBPlc NjflPITJ gccuOZJph

내가 생각하고

/^[a-zA-Z]{8}[a-zA-Z]{9}[a-zA-Z]{10}.*/ 

같은 오른쪽인가요이다 생각해?

답변

3

당신은 그 "말"사이에 추가로 빈 공간과 일치해야합니다

/^[a-zA-Z]{8}\s+[a-zA-Z]{9}\s+[a-zA-Z]{10}\s+.*/ 

\swhitespace character

당신은

일치 대소 문자를 구분하기위한 i 수정을 사용하여 표현을 더 단순화 할 수

/^[a-z]{8}\s+[a-z]{9}\s+[a-z]{10}\s+.*/i 
+0

는 당신이, 내가 이것을 시도하기 위하여려고하고 감사하고 테스트 코멘트와 함께 작동하는 경우 다음 내가 다시 와서 마크 것이다 접수로 . – coderintherye

+0

위대한 작품, 대단히 감사합니다! – coderintherye

0

내 이해는 약간 단순화 할 수 있습니다.

/^[a-zA-Z]{8,10}$/ 

(이 각 "단어"가 아닌 전체 텍스트를 감지 주)

+0

전체 문자열이 8-10 자의 한 단어 인 경우에만 일치합니다. – stema

+0

고맙습니다. 그러나 저는 스템타의 대답이 더 완벽하다고 생각합니다. – coderintherye