17 Escaping примери
Преглед
Ова страница пружа примере коришћења исправног escaping-а када користите регуларне изразе у различитим контекстима.
Када користите конструктор израза окидача, аутоматски се додаје исправан escaping у регуларним изразима.
Примери
Кориснички макро са контекстом
Регуларни израз: \.+\"[a-z]+
Кориснички макро са контекстом: {$MACRO:regex:"\.+\\"[a-z]+"}
Напомена:
- обрнуте косе црте нису изоловане;
- наводници су изоловани.
LLD макро функција
Регуларни израз: \.+\"[a-z]+
LLD макро: {{#MACRO}.iregsub("\.+\\"[a-z]+", \1)}
Напомена:
- обрнуте косе црте нису изоловане;
- наводници су изоловани.
LLD макро функција унутар корисничког макро контекста
Регуларни израз: \.+\"[a-z]+
LLD макро: {{#MACRO}.iregsub("\.+\\"[a-z]+", \1)}
Кориснички макро са контекстом: {$MACRO:"{{#MACRO}.iregsub(\".+\\\"[a-z]+\", \1)}"}
Напомена:
- изолација обрнутих коса црта за LLD остаје иста;
- након уметања LLD макроа у контекст корисничког макроа, морамо га ставити у стринг:
- Наводници се додају око макро израза;
- Наводници се изолују; укупно су уведене 3 нове косе црте.
Стринг параметар функције (било које)
concat се користи као пример.
Садржај стринга: \.+\"[a-z]+
Израз: concat("abc", "\\.\\\"[a-z]+")
Напомена:
- Параметри стринга захтевају изолацију и косих црта и наводника.
LLD макро функција унутар стринг параметра функције
Регуларни израз: \.+\"[a-z]+
LLD макро: {{#MACRO}.iregsub("\.+\\"[a-z]+", \1)}
Израз: concat("abc, "{{#MACRO}.iregsub(\"\\.+\\\\\"[a-z]+\", \\1)}")
Напомена:
- Параметри стринга захтевају изолацију и косих црта и наводника;
- Додаје се још један слој изолације, јер ће макро бити разрешен тек након што се стринг не цитира;
Кориснички макро са контекстом унутар стринг параметра функције
Регуларни израз: \.+\"[a-z]+
Кориснички макро са контекстом: {$MACRO:regex:"\.+\\"[a-z]+"}
Израз: concat("abc, "{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}")
Напомена:
- Као у претходном примеру потребан је додатни слој изолације;
- Косе косе црте и наводници су изоловани ссамо за горњи ниво изолације (зато што је то стринг параметар).
LLD макро функција унутар корисничког макро контекста унутар функције
Регуларни израз: \.+\"[a-z]+
LLD макро: {{#MACRO}.iregsub("\.+\\"[a-z]+", \1)}
Кориснички макро са контекстом: {$MACRO:"{{#MACRO}.iregsub(\".+\\\"[a-z]+\", \1)}"}
Израз: concat("abc, "{$MACRO:\"{{#MACRO}.iregsub(\\\".+\\\\\\\"[a-z]+\\\", \\1)}\"}")
Напомена о три слоја изолације:
- За LLD макро функцију, без изолације обрнуте косе црте;
- За кориснички макро са контекстом, без изолације обрнуте косе црте;
- За параметар стринга функције, са изолацијом обрнутих косих црта.
Кориснички макро са контекстом само унутар стринга
Регуларни израз: \.+\"[a-z]+
Кориснички макро са контекстом: `{$MACRO:regex:"\.+\\"[a-z]+"}
Унутар стринга неког израза, на пример: func(arg1, arg2, arg3)="{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}"
Напомена:
- Стрингови такође захтевају изолацију обрнуте косе црте;
- Стрингови такође захтевају изолацију наводника;
- Поново је случај са 2 нивоа изолације:
- Изолација за кориснички макро са контекстом без изолације обрнутих косих црта;
- Изолација због тога што је стринг са изолацијом обрнутих косих црта.