Я использую регулярные выражения perl для анализа музыкального имени аккорда, такого как E#m
. Я не могу заставить perl распознать #
. Он также не будет работать при сохранении в строке, несмотря на то, что другие символы отлично работают с строкой. Я также попытался убежать от него с обратной косой чертой.Поиск меток хэша (#) с использованием perl regex
Повторим:
my ($scale, $mod, $chord) = /\b([a-g])(\#|b|)\b/i ;
или
my $sharp = "#";
my ($scale, $mod, $chord) = /\b([a-g])($sharp|b|)\b/i ;
не работают, но
my $sharp = "n";
my ($scale, $mod, $chord) = /\b([a-g])($sharp|b|)\b/i ;
обнаруживает n
Удалите конечную границу слова и использовать его внутри группы. '\ b ([a-g]) (# | b \ b)' – hwnd
my ($ scale, $ mod) =/([a-g] +) ([$ {sharp} b] *)/i; – ssr1012