特殊情况的4个字母单词的正则表达式

时间:2013-04-29 06:27:58

标签: php regex

我对正则表达式感兴趣,因为它找到了以下模式。

I或E表示第一个字母,N或S表示第2个,F表示第3个,第4个表示J或P第4个。

这将识别ISTJ,ESTP,ENTP但不识别EJPT。

由于

1 个答案:

答案 0 :(得分:7)

应该很简单,使用Character Sets[IE][NS][FT][JP]

总而言之:\b[IE][NS][FT][JP]\b
对于整个输入:^[IE][NS][FT][JP]$

工作示例:http://rubular.com/r/6VCwduNiTX

示例PHP代码:http://ideone.com/XgbFWY

$ptn = "/[IE][NS][FT][JP]/"; // use "/[IE][NS][FT][JP]/i" to ignore case
$str = "ISTJ, ESTP,ENTP but not EJPT";
preg_match_all($ptn, $str, $matches);