Из учебника по регулярным выражениям — Литеральные символы и специальные символы:
Поскольку мы хотим делать больше, чем просто искать буквальную часть текста, нам нужно зарезервировать определенные символы для специального использования. По крайней мере, 12 символов имеют специальное значение:
обратный слэш \, символ ^, знак доллара $, точка ., вертикальная черта или символ пайпа |, вопросительный знак ?, звездочка *, знак плюс +, открывающая скобка (, закрывающая скобка ), открывающая квадратная скобка [ и открывающая фигурная скобка {. Эти специальные символы часто называют «метасимволами». Большинство из них являются ошибками, если используются по отдельности.
Если вы хотите использовать любой из этих символов как литерал в регулярном выражении, вам нужно экранировать их обратным слэшем . Если вы хотите сопоставить 1+1=2, правильное регулярное выражение — 1\+1=2. В противном случае знак плюс имеет специальное значение.
И в PT нам часто нужен \ в регулярных выражениях, потому что он так фундаментален для USFM. Поэтому, чтобы найти \p в регулярном выражении, вы вводите \\p.
(Полезно узнать об экранировании, так как даже в этом инструменте форума определенные символы не будут отображаться, если вы не экранируете их или не используете функцию «предварительно отформатированный текст» через значок </>.)
From a Regex Tutorial - Literal Characters and Special Characters:
Because we want to do more than simply search for literal pieces of text, we need to reserve certain characters for special use. There are at least 12 characters with special meanings:
the backslash \, the caret ^, the dollar sign $, the period or dot ., the vertical bar or pipe symbol |, the question mark ?, the asterisk or star *, the plus sign +, the opening parenthesis (, the closing parenthesis ), the opening square bracket [, and the opening curly brace {, These special characters are often called “metacharacters”. Most of them are errors when used alone.
If you want to use any of these characters as a literal in a regex, you need to escape them with a backslash . If you want to match 1+1=2, the correct regex is 1\+1=2. Otherwise, the plus sign has a special meaning.
And in PT, we often need the \ in a regex, because it is so fundamental for usfms. So to search for \p in a regex, you type \\p.
(It is useful to learn about escaping, as even in this forum-tool, certain characters will not render, unless you either escape them or use the “preformatted text” feature via the </> icon.)
Переведено машиной с языка English Показать оригинал