Вы можете использовать чередование :
(\s+|=)$
Это выражение означает, что соответствует одному или нескольким пробельным символам или , равным одному, в конце строки . $
- это якорь , который соответствует концу строки (как вы уже упоминали, вы ищете символы в конце строки).
(Как правильно указал tchrist в комментариях, $
соответствует концу строки вместо конца строки в многострочном режиме. Если это верно в вашем случае, и вы действительно ищете конец строки вместо конца строки, вместо этого вы можете использовать \Z
, что соответствует концу строки независимо от многострочного режима.)
Если вы хотите убедиться, что в конце есть только один =
, вы можете использовать lookaround (в данном случае, в частности, отрицательный взгляд сзади). Обратный взгляд - это утверждение нулевой ширины , которое сообщает механизму регулярных выражений, что утверждение должно пройти, чтобы шаблон соответствовал, но оно не потребляет никаких символов.
(\s+|(?<!=)=)$
В этом случае (?<!=)
сообщает механизму регулярных выражений, символ перед текущей позицией не может быть =
. При вводе в выражение (?<!=)=
означает, что =
будет соответствовать, только если предыдущий символ также не является =
.