Я пытаюсь найти подстроку, которая содержит «]» без «|» перед ней. Как я могу сделать это с регулярным выражением?
/(?<!\|)\]/ - это необходимое вам регулярное выражение.
/(?<!\|)\]/
?<! - утверждение нулевой ширины, также известное как «отрицательный взгляд сзади». По сути это означает совпадение ], но «оглянуться назад» и утверждать, что предыдущий символ не является |
?<!
]
|
Использовать отрицательный взгляд назад
Очень просто: [^|]\].
[^|]\]
Если вы также хотите сопоставить [ в начале строки, используйте (^|[^|])\]
[
(^|[^|])\]