Это похоже на работу для lookarounds :
(?<!=)==[a-zA-z0-9 ]*==(?!=)
Я считаю, что приведенный выше способ является наиболее читабельным способом сделать это.Вы также можете использовать следующее, которое работает в основном таким же образом:
==(?<!={3})[a-zA-z0-9 ]*(?!={3})==
Это также позволит вам сопоставлять несколько раз в одной и той же строке, пока есть разрыв (любой не-=
характер) между ними.Например, ==foo== ==bar==
должно дать 2 совпадения, а ==foo====bar==
- ни одного.