Перейти к следующей строке с оператором после if()
Предыдущий разработчик любил помещать отдельные утверждения в те же строки, что и соответствующие if()
s. Я пытаюсь найти эти строки сейчас, чтобы исправить их! Я думал, что следующее регулярное выражение найдет их, но это не так:
/\^\s*if\.*;\$
/ Start search
\^ Beginning of line
\s* Any amount of whitespace
if Beginning of the if() statement
\.* Any amount of characters
; The end of the single statement
\$ End of the line
Итак, где я ошибся?
1 ответ
Решение
Каретка с обратной косой чертой \^
соответствует буквальному карету ^
не начало строки
Обычно символы со специальным значением называются метасимволами, экранированные метасимволы обычно соответствуют буквальному символу и теряют какое-либо особое значение.
Остерегайтесь других контекстов, в регулярных выражениях Perl (
является метасимволом захвата, но в awk эта роль отводится \(