Мне нужно найти все совпадения в строке, которые существуют между набором разделителей.
Например, если у меня есть строка The #quick# brown fox #jumped# over the lazy #dog#.
, мне нужно получить совпадения quick
, jumped
и dog
.
Я должен получать только совпадения, которые: - не содержат разделитель / (например, quick
против #quick#
). - находятся между наборами разделителей. То есть разделители 1 и 2 являются множеством, как и разделители 3 и 4. В итоге я должен получить quick
, но не brown fox
.
Вот регулярное выражение, которое я имею до сих пор: (?<=\#)(.*?)(?=\#)
. Это соответствует моим первым критериям, но не моему второму.
Вот на regex101.com: https://regex101.com/r/bD5mo0/1/
Итак, мой вопрос, как мне получить регулярное выражение игнорировать совпадения между множествами? То есть совпадение между первым и вторым разделителем, но не между вторым и третьим.
Я знаю, что изменение второго разделителя, чтобы отличаться от первого, решит эту проблему, но строки, которые я регулярное выражение выходят из базы данных, поэтому я бы не стал их изменять.