Я работаю над базой кода C++, которая была недавно перенесена из X/Motif в Qt. Я пытаюсь написать Perl-скрипт, который заменит все вхождения Boolean (из X) на bool. Сценарий просто выполняет простую замену.Regex заменить Boolean на bool
s/\bBoolean\b/bool/g
Есть несколько условий.
1) У нас есть CORBA в нашем коде и \ b соответствует CORBA :: Boolean, который должен быть изменен не.
2) Это не должно совпадать, если он был найден в виде строки (т.е. "Boolean")
Обновлено:
Для # 1, я использовал просмотра назад
s/(?<!:)\bBoolean\b/bool/g;
Для # 2 , Я использовал lookahead.
s/(?<!:)\bBoolean\b(?!")/bool/g</pre>
Это, скорее всего, будет работать для моей ситуации, но как насчет следующих улучшений?
3) Не совпадают, если в середине строки (спасибо nohat).
4) Не совпадают, если в комментарии. (// или/** /)
примечание стороны: http://stackoverflow.com/questions/72312/how-should-i-capitalize-perl#72757 – szabgab 2008-09-17 05:13:51