次の LaTeX コマンドがあります。
\autocites[][]{}[][]{}
内部のパラメーター[]
はオプションで、内部の他のパラメーター{}
は必須です。コマンドは、\autocites
次のような追加の引数グループによって拡張できます。
\autocites[a1][a2]{a3}[b1][b2]{b3}
\autocites[a1][a2]{a3}[b1][b2]{b3}[c1][c2]{c3}
...
次のようにも使用できます。
\autocites{a}{b}
\autocites{a}[b1][]{b3}
\autocites{a}[][b2]{b3}
...
PHPで正規表現を使用してパラメータを抽出したいと思います。これは私の最初の試みです:
/\\autocites(\[(.*?)\])(\[(.*?)\])(\{(.*?)\})(\[(.*?)\])(\[(.*?)\])(\{(.*?)\})/
これ\autocites
は、3 つのパラメーターの 2 つのグループのみが含まれている場合は正常に機能しますが、不明な数のパラメーターに対して機能させる方法を理解できません。
また、次の表現を使用してみました。
/\\autocites((\[(.*?)\]\[(.*?)\])?\{(.*?)\}){2,}/
今回は、さらに多数のパラメーターに一致させることができますが、PHP は常に最後の 3 つのパラメーターの内容を提供するだけなので、すべての値を抽出することはできません。
Array
(
[0] => Array
(
[0] => \autocites[a][b]{c}[d][e]{f}[a][a]{a}
)
[1] => Array
(
[0] => [a][a]{a}
)
[2] => Array
(
[0] => [a][a]
)
[3] => Array
(
[0] => a
)
[4] => Array
(
[0] => a
)
[5] => Array
(
[0] => a
)
)
どんな助けでも大歓迎です。