<?php
$str = <<<'EOD'
1er couplet:
Gm/G
Mon enfant, nue sur les galets
G D7
Le vent dans tes cheveux defaits
Dsus Cmaj
Comme un printemps sur mon trajet
C Em
Un diamant tombé d'un coffret
EOD;
$pattern = <<<'EOD'
~
\b
(?:
G,C,D | A,B,C | E,C,D
|
[A-G] (?: \# | b )? (?: / [A-G] b)?
(?:
(?: maj | min | sus | add | aug | dim )
\d{0,2}
(?: \# \d{1,2} | sus \d )?
|
m \d{0,2}
(?: (?: maj | add | \# )? \d{0,2} )?
|
-? \d{0,2}
(?: \( [^)]* \) | \# \d{1,2} )?
)
)
(?!\S)
~x
EOD;
echo preg_replace($pattern, '[$0]', $str);
preferences:
23.37 ms | 404 KiB | 5 Q