正则表达式——匹配符合条件的词

Regular Expressions - matching words which meet the condition

我有问题要解决:

我需要匹配每个少于 4 个字符的单词,除了单词 i、j、k 和 pom.I 制作的 reg exp 可以找到大小小于 4 的所有单词 - [a-zA- Z]{1,3} 但我不知道如何排除 i、j、k 和 pom。我需要在一个 reg exp 中完成。

非常感谢您的回答

是这样的吗?

$ cat b.txt
abcdef
abcd
abc
pom.
pom
i,j,k

$ grep -E '^([a-z]{1,3}|pom.|i,j,k)$' b.txt
abc
pom.
pom
i,j,k

备注:
* 测试上面的匹配行,你可以像-E -w -o这样修改它以匹配行
中的单词 * 单词 pom 将默认匹配,因为它的长度为三=小于 4
* 单词 pom.(以点结尾)本来会被排除,但由于正则表达式或操作(符号 |

而被保存

更新

$ grep -E '^([a-z]{1,3}|pom.|i|j|k)$' b.txt

已更新
(?i)\b(?!pom|[ijk]\b)[a-z]{1,3}\b

 (?i)                     # Inline modifier, case-insensitive
 \b                       # word boundary
 (?! pom | [ijk] \b )     # Assert not 'pom' nor single i, j or k
 [a-z]{1,3}               # 1 to 3 letters a-z
 \b                       # word boundary