Я отвечу только на четвертое правило, так как у вас есть проблема только с ним.
Да, есть возможность, но я думаю, что регулярное выражение не подходит для проверки этого ...
Этот шаблон ^(?(?=.*\+)(?!.*[\*\/-])).+$
будет соответствовать любой строке, которая содержит +
и не содержит других символов: /
, *
, -
.Ведь один персонаж уже длинный и его трудно читать. См. Демонстрацию .
Используется условное выражение (?...)
, чтобы проверить, была ли проверка с предварительным просмотром для +
успешной, если это так, то отрицательный прогноз гарантирует, что у вас не будет\*-
символов.
Для всех символов регулярное выражение станет очень большим и сложным в обслуживании.
Именно поэтому я не рекомендую его для этой задачи.