什么是PHP正则表达式捕获一组字符串8,9和10字符长?

时间:2012-11-08 07:51:37

标签: php regex

我正在处理一个spambot并且为了防止其无意义的帖子我已经确定它总是以[8个字符a-zA-Z] [9个字符a-zA-Z] [10个字符]的特定方式发布a-zA-Z] ......

我想捕捉这个确切的模式,以便我可以阻止它。

示例如下:

  

EifnBTVK zljhGBZty poozgzbdax JZBnNbbpt rbpdig LfpMXMEDqay LfjrLSDQ saxaUBPlc NjflPITJ gccuOZJph

我认为这就像

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

这是正确的思路吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我的理解是你可以简化一下

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

(注意这会检测每个“单词”,而不是整个文本)