Я пытаюсь создать регулярное выражение, которое извлекает ключи bibtex из команд cite в текстовом документе. Он должен иметь возможность принимать полный латексный документ в качестве входной строки и возвращать все ключи bibtex как совпадения:
Blahbla document
\somecommand{test} blabla nonsense lorem ipsum \cite{key1} and \cite{key2, key3, key4}
возвращается
key1
key2
key3
key4
Я придумал это, используя https://regex101.com:
\\cite\{([^\},]+)(?:,\s*([^\},]+))*\}
Это работает, за исключением того факта, что только key2 и key4 идентифицируются как совпадения во второй команде \cite.
Может ли кто-нибудь объяснить, что здесь не так и как это должно быть сделано? Заранее спасибо!
*
жадный, который максимально соответствует всем символам. - person Avinash Raj   schedule 23.03.2015