Вы можете использовать это- ^\[img(?:\].+\[\/img\]|=.+\])$
Примечание : если вы хотите проверить, является ли строка ссылки действительным URL-адресом, замените оба .+
на сопоставитель регулярных выражений URL, вы может найти одну здесь
Пояснение
^\[img
- эта часть является общей для обеих строк, она будет соответствовать [img
в начале строки (?:\].+\[\/img\]|=.+\])$
- Это будет соответствовать 2 вариантам, в зависимости от самого первого символа
Первый вариант (первый символ ]
) - В этом случае \].+\[\/img\]|
будет сопоставлено. Это будет соответствовать всему (.+
) между открывающим и закрывающим тегами [img]
до окончательного соответствия самому закрывающему тегу.
Второй вариант (первый символ - =
) - В этом случае =.+\]
будет сопоставлено. Это захватывает все после img=
и останавливается при достижении ]
.
наконец, регулярное выражение соответствует концу строки.
Проверка демо