正则表达式4个字母的特殊字符

问题描述:

我感兴趣的是找到以下模式的正则表达式。正则表达式4个字母的特殊字符

I或E代表第1个字母,N或S代表第2代,F代表T或第3代,J或P代表第4代。

这将识别ISTJ,ESTP,ENTP而不是EJPT。

由于

应该是简单的,采用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);