Метасимволы
статьи первый раздел Возможно, придется переписать . Причина такова: определение и заголовок касаются только метасимволов регулярных выражений, а статья - нет. ( Апрель 2019 г. ) |
Метасимвол — это символ , который имеет особое значение для компьютерной программы, например интерпретатора оболочки или механизма регулярных выражений (regex).
В расширенных регулярных выражениях POSIX есть 14 метасимволов, которые необходимо экранировать (перед ними ставится обратная косая черта ( \
)) чтобы отбросить их особое значение и рассматривать их буквально внутри выражения: открывающие и закрывающие квадратные скобки ( [
и ]
); обратная косая черта ( \
); каре ( ^
); знак доллара ( $
); точка/точка/точка ( .
); символ вертикальной полосы/трубы ( |
); вопросительный знак ( ?
); звездочка ( *
); знаки плюс и минус ( +
и -
); открытие и закрытие фигурных скобок/фигурных скобок ( {
и }
); а также открывающие и закрывающие скобки ( (
и )
).
Например, чтобы сопоставить арифметическое выражение (1+1)*3=6
с регулярным выражением правильное регулярное выражение \(1\+1\)\*3=6
; в противном случае круглые скобки, знак плюса и звездочка будут иметь особое значение.
Другие примеры
[ редактировать ]Некоторые другие символы могут иметь особое значение в некоторых средах.
- В некоторых оболочках Unix точка с запятой («;») является разделителем операторов .
- В XML и HTML амперсанд . («&») представляет HTML сущность [1] Он также имеет особое значение в MS-DOS / командной строке Windows . [2]
- В некоторых оболочках Unix и командной строке MS-DOS/Windows знаки «меньше» и «больше» («<» и «>») используются для перенаправления , а обратный апостроф / серьезный акцент («`») используется для замена команды . [2]
- Во многих программирования языках строки разделяются escape - кавычками столкновения ("или '). В некоторых случаях символы (и другие методы) используются, чтобы избежать разделителей , например "Он сказал: \"Привет\"".
- В строках формата printf знак процента («%») используется для представления спецификаторов формата и должен быть экранирован как «%%», чтобы интерпретироваться буквально. [3] В SQL процент используется как подстановочный знак . [4]
- В SQL подчеркивание («_») используется для обозначения любого отдельного символа. [4]
Побег
[ редактировать ]Термин «избежать метасимвола» означает сделать метасимвол неэффективным (лишить его особого значения), придав ему буквальное значение. Например, в PCRE точка («.») обозначает любой одиночный символ. Регулярное выражение «AC» будет соответствовать «ABC», «A3C» или даже «AC». Однако если "." экранирован, он потеряет свое значение как метасимвол и будет интерпретироваться буквально как ".", в результате чего регулярное выражение "A\.C" будет соответствовать только строке "AC".
Обычный способ экранирования символа в регулярном выражении и других местах – добавить к нему обратную косую черту ("\"). В других средах могут использоваться другие методы, например командная строка MS-DOS/Windows, где вместо этого используется курсор («^»). [2]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Ссылки на символьные сущности в HTML 4» . www.w3.org . W3C . 24 декабря 1999 года . Проверено 19 ноября 2018 г.
- ^ Jump up to: а б с «Обзор командной оболочки» . docs.microsoft.com . Майкрософт . 10 сентября 2009 года . Проверено 19 ноября 2018 г.
- ^ «Базовые спецификации открытой группы, выпуск 7: fprintf» . pubs.opengroup.org . Открытая группа . 2018 . Проверено 19 ноября 2018 г.
- ^ Jump up to: а б «LIKE (Transact-SQL)» . docs.microsoft.com . Майкрософт . 14 марта 2017 года . Проверено 19 ноября 2018 г.