Я строю это регулярное выражение с позитивным взглядом.По сути, он должен выделить весь текст в строке до последнего периода, который предшествует «:», и добавить «|»до конца, чтобы разграничить его.Пример текста ниже.Я тестирую это в gskinner и editpadpro, который имеет полную поддержку регулярных выражений grep, поэтому, если бы я мог получить ответы на этот вопрос, я был бы признателен.
Регулярное выражение ниже работает до некоторой степени, но я не уверен, если оноверно.Также он падает, если текст содержит квадратные скобки.
Наконец, я хотел бы добавить еще одно правило игнорирования, такое как правило, игнорирующее, но включающее "Ко".в выборе.Это второе правило игнорирования будет игнорировать, но включать периоды, перед которыми стоит одна заглавная буква.Пример текста ниже тоже.Спасибо за помощь.
^(?:[^|]+\|){3}(.*?)[^(?:Co)]\.(?=[^:]*?\:)
121| Ryan, T.N. |2001. |I like regex. But does it like me (2) 2: 615-631.
122| O' Toole, H.Y. |2004. |(Note on the regex). Pages 90-91 In: Ryan, A. & Toole, B.L. (Editors) Guide to the regex functionality in php. Timmy, Tommy& Stewie, Quohog. * Produced for Family Guy in Quohog.