Мне нужно преобразовать псевдонимы в case-case в Graphite .Я использую функцию aliasSub () .
Итак, учитывая некоторые метрики
pass
needs review
fail
, я хочу использовать aliasSub()
, чтобы дать мне
Pass
Needs Review
Fail
Мне удалось сделать это сгрубое преобразование с использованием aliasSub()
для каждой буквы алфавита:
OtherFunctionsfirst|aliasSub("\b([a])([a-z]+)","A\2")|aliasSub("\b([b])([a-z]+)","B\2")|aliasSub("\b([c])([a-z]+)","C\2")|aliasSub("\b([d])([a-z]+)","D\2")|aliasSub("\b([e])([a-z]+)","E\2")|aliasSub("\b([f])([a-z]+)","F\2")|aliasSub("\b([g])([a-z]+)","G\2")|aliasSub("\b([h])([a-z]+)","H\2")|aliasSub("\b([i])([a-z]+)","I\2")|aliasSub("\b([j])([a-z]+)","J\2")|aliasSub("\b([k])([a-z]+)","K\2")|aliasSub("\b([l])([a-z]+)","L\2")|aliasSub("\b([m])([a-z]+)","M\2")|aliasSub("\b([n])([a-z]+)","N\2")|aliasSub("\b([o])([a-z]+)","O\2")|aliasSub("\b([p])([a-z]+)","P\2")|aliasSub("\b([q])([a-z]+)","Q\2")|aliasSub("\b([r])([a-z]+)","R\2")|aliasSub("\b([s])([a-z]+)","S\2")|aliasSub("\b([t])([a-z]+)","T\2")|aliasSub("\b([u])([a-z]+)","U\2")|aliasSub("\b([v])([a-z]+)","V\2")|aliasSub("\b([w])([a-z]+)","W\2")|aliasSub("\b([x])([a-z]+)","X\2")|aliasSub("\b([y])([a-z]+)","Y\2")|aliasSub("\b([z])([a-z]+)","Z\2")
Тьфу!Это делает работу, но не элегантно и в некоторой степени снижает производительность (возможно, сильно).
Вопрос: Есть ли лучший способ сделать это?
Для тех, кто просматривает этот вопрос на основе тегов, но не знаком с Graphite: это веб-приложение на основе Python.Мне предоставляется графическая функция aliasSub()
, которая, в свою очередь, вызывает функцию re.sub()
Python.Код, с которым я взаимодействую, находится на github здесь .