Это очень похоже на Python: разделить строку многосимвольным разделителем, если только внутри кавычек , откуда я взял свою отправную точку.
Рассмотрим эту тестовую строку:
{{Institution Name 1} and {Institution name 2}} and {Institution name 3} and {Institution and institution name 4}
Я, в основном, хочу разделить это, поэтому я получаю (это то же самое для меня, если вмещающие скобки включены или нет):
{Institution Name 1} and {Institution name 2}
Institution name 3
Institution and institution name 4
или (с прилагаемыми скобками):
{{Institution Name 1} and {Institution name 2}}
{Institution name 3}
{Institution and institution name 4}
По сути, каждый набор скобок отделяет элемент, а элементы разделяются "and
".
Однако элемент может состоять из нескольких предметов, которые я не хочу разбивать в первом проходе; и "and
" может также отображаться как часть названия учреждения, и в этом случае я не хочу использовать его как разделитель.
Изменяя регулярное выражение из связанного поста, я придумал and (?=(?:[^{]*{[^{]*})*[^}]*$)
; https://pythex.org/ ( ссылка на регулярное выражение ), это приводит к следующему:
![pythex-scr.png](https://i.stack.imgur.com/0hrwN.png)
Итак, регулярное выражение успешно избежало "and
" в качестве разделителя в третьем элементе, где оно является частью названия учреждения, но оно все еще используется в качестве разделителя в первом поле, где его следует игнорировать, поскольку оно находится в наборе группирующих скобок .
Существует ли регулярное выражение Python, которое я могу использовать вместо этого, чтобы разделить определенным образом?