Как правильно указал нангидрин, мое решение не будет работать, если есть несколько строк, но нет другой. Если это может произойти, вы можете проверить каждую строку отдельно для удобства чтения
Если совпадения найдены в обоих случаях, вы можете go!
Оригинальный ответ: -
This нужное регулярное выражение: (?:\*{3}(?:ThisString|ThatString)\*{3})
Примечание : Убедитесь, что включено глобальное совпадение, и убедитесь, что звездочки правильно экранированы.
Если вышеприведенное выражение находит 2 (или больше) совпадений, это значит, что вы хорошо справляетесь с go.
Объяснение: -
- Все это в не захватывающей группе, это убедитесь, что все внутри соответствует полностью
- С каждой стороны строк по 3 звезды, с 3 звездами на одной стороне, но не на другой, не приведет к совпадению
- И
ThisString
, и ThatString
находятся в сгруппированной альтернативе, это для уменьшения беспорядка, вы можете полностью заклинить каждую ssible позиционный паттерн, но это лучше, так как позиция здесь не имеет значения. ***ThatString***
может предшествовать ***ThisString***
или наоборот.
УБЕДИТЕСЬ чтобы проверить длину найденных совпадений, длина должна быть 2, чтобы ваше описанное условие было доволен.
Вот демо live