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

bra*_*orm 0 php regex

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

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

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

谢谢

Kob*_*obi 7

应该很简单,使用字符集:[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);
Run Code Online (Sandbox Code Playgroud)