natgillin/translations-raw huggingface dataset:
Because regular expression software supporting the concept of back references saves the entire matching part of the string as well as sub-patterns enclosed in parentheses, given some means of access to those references, we could get our hands on either the whole match (when searching a text document in an editor with a regular expression, that is often marked as selected) or either the name found, or the last part of the verb.
Програмне забезпечення, яке працює з формальними виразами, підтримує концепцію зворотних посилань, використання цієї концепції надає змогу зберегти повністю знайдену частину рядка або підрядки, позначені круглими дужками, а потім у певний спосіб використати ці посилання. Отже, ми можемо повністю позбутися ручної роботи з пошуку рядка (під час пошуку за допомогою формального виразу у текстовому документі, відкритому у редакторі, цей рядок буде позначено як виділений), пошуку імені або навіть фраз з різними закінченнями у дієслів.
All together, the expression will match where we wanted it to, and only there.
Разом, формальний вираз визначає саме той рядок, який ми бажали знайти, і лише у потрібному місці тексту.
The following sections will describe in details how to construct and use patterns, character classes, assertions, quantifiers and back references, and the final section will give a few useful examples.
У наступних розділах буде докладно описано побудову і використання шаблонів, класів символів, умовних виразів, лічильників і зворотних посилань. Нарешті у останньому розділі ви знайдете декілька корисних прикладів.
Patterns consists of literal strings and character classes. Patterns may contain sub-patterns, which are patterns enclosed in parentheses.
Шаблони складаються з рядків і класів символів. У шаблонах можуть міститися підшаблони, тобто шаблони, взяті у круглі дужки.
Escaping characters
Символи керування
In patterns as well as in character classes, some characters have a special meaning. To literally match any of those characters, they must be marked or escaped to let the regular expression software know that it should interpret such characters in their literal meaning.
У шаблонах, так само як і у класах символів, певні символи мають особливе призначення. Для пошуку цих символів не за значенням, а за візуальним представленням, ці символи слід позначити або екранувати, щоб повідомити рушієві пошуку за формальним виразом, що відповідні символи слід шукати за їх візуальним представленням.
This is done by prepending the character with a backslash (\\).
Це завдання можна виконати за допомогою додавання перед символом зворотної навскісної риски (\\).
The regular expression software will silently ignore escaping a character that does not have any special meaning in the context, so escaping for example a j (\\j) is safe. If you are in doubt whether a character could have a special meaning, you can therefore escape it safely.
Рушій пошуку за формальним виразом без додаткових повідомлень ігноруватиме екрановані символи, які не мають спеціального призначення, отже екранування, наприклад символу j (\\ j) є безпечним. Якщо ви не пам’ ятаєте, чи може символ мати спеціальне призначення, ви можете про всяк випадок його заекранувати.
Escaping of course includes the backslash character itself, to literally match a such, you would write\\\\.
Екранування, звичайно ж, можна застосовувати і до самого символу зворотної навскісної риски, щоб програма сприймала введену вами зворотну навскісну риску як зворотну навскісну риску, вам слід ввести\\\\.
Character Classes and abbreviations
Класи символів і абревіатури
A character class is an expression that matches one of a defined set of characters. In Regular Expressions, character classes are defined by putting the legal characters for the class in square brackets, [], or by using one of the abbreviated classes described below.
Клас символів — це вираз, якому відповідає один символ з вказаного набору символів. У формальних виразах, класи символів визначаються зазначенням дозволених символів класу у квадратних дужках, [], або за допомогою абревіатур класів, які описано нижче.
Simple character classes just contains one or more literal characters, for example [abc] (matching either of the letters a, b or c) or [0123456789] (matching any digit).
Прості класи символів містять один або декілька буквених символів, наприклад, [abc] (це означає одну з літер: a, b або c) або [0123456789] (цей клас визначає одну цифру).
Because letters and digits have a logical order, you can abbreviate those by specifying ranges of them: [a-c] is equal to [abc] and [0-9] is equal to [0123456789]. Combining these constructs, for example [a-fynot1-38] is completely legal (the last one would match, of course, either of a, b, c, d, e, f, y, n, o, t, 1, 2, 3 or 8).
Оскільки для літер і цифр характерний певний порядок (абетка або порядок цифр), ви можете скорочувати запис за допомогою діапазонів: [a- c] рівнозначний до [abc], а [0- 9] — до [0123456789]. Можна також використовувати комбінації таких конструкцій, наприклад, [a- fynot1- 38] (звичайно ж, остання комбінація відповідає одному з символів a, b, c, d, e, f, y, n, o, t, 1, 2, 3 або 8).
As capital letters are different characters from their non-capital equivalents, to create a caseless character class matching a or b, in any case, you need to write it [aAbB].
Оскільки великі літери відрізняються від своїх малих еквівалентів, для створення класу символів, у якому б регістр не мав значення, з літер a і b, вам слід записати [aAbB].
It is of course possible to create a negative class matching as anything but To do so put a caret (^) at the beginning of the class:
Звичайно ж можна створити і негативний клас, до якого б входили всі літери окрім вказаних. Для запису такого класу вам слід скористатися символом каретки (^) на початку запису класу:
[^abc] will match any character but a, b or c.
Набір [^abc] відповідає будь- якому символу, окрім a, b і c.
In addition to literal characters, some abbreviations are defined, making life still a bit easier:
Окрім звичайних символів, передбачено використання деяких скорочень, які спрощують запис формальних виразів:
This matches the ASCII bell character (BEL, 0x07).
Цей рядок відповідає символу дзвінка у ASCII (BEL, 0x07).
This matches the ASCII form feed character (FF, 0x0C).
Цей рядок відповідає символу зміни сторінки у ASCII (FF, 0x0C).
This matches the ASCII line feed character (LF, 0x0A, Unix newline).
Цей рядок відповідає символу зміни рядка у ASCII (LF, 0x0A, символ нового рядка у Unix).
This matches the ASCII carriage return character (CR, 0x0D).
Цей рядок відповідає символу повернення каретки у ASCII (CR, 0x0D).
This matches the ASCII horizontal tab character (HT, 0x09).
Цей рядок відповідає символу горизонтальної табуляції у ASCII (HT, 0x09).
This matches the ASCII vertical tab character (VT, 0x0B).
Цей рядок відповідає символу вертикальної табуляції у ASCII (VT, 0x0B).
This matches the Unicode character corresponding to the hexadecimal number hhhh (between 0x0000 and 0xFFFF). \\0ooo (ie;, \\zero ooo) matches the ASCII / Latin-1 character corresponding to the octal number ooo (between 0 and 0377).
Такий рядок відповідає символу Unicode з шістнадцятковим номером hhhh (у межах від 0x0000 до 0xFFFF).\\ 0ooo (тобто\\ нульo ooo) відповідає символу з ASCII / Latin- 1 з вісімковим номером ooo (у межах від 0 до 0377).
. (dot)
. (крапка)
This matches any character (including newline).
Цей рядок відповідає будь- якому символу (зокрема символу нового рядка).
This matches a digit. Equal to [0-9]
Цей рядок відповідає будь- якій цифрі. Він рівнозначний до [0- 9]
This matches a non-digit. Equal to [^0-9] or [^\\d]
Цей рядок відповідає будь- якому символу, окрім цифри. Він рівнозначний до [^0- 9] або [^\\ d]
This matches a whitespace character. Practically equal to [\\t\ \\r]
Цей рядок відповідає символу проміжку між символами. З практичної точки зору, він рівнозначний до [\\ t\\\ r]
This matches a non-whitespace. Practically equal to [^ \\t\\r\], and equal to [^\\s]
Цей рядок відповідає символу, який не є пробілом. З практичної точки зору, цей рядок еквівалентний до [^\\ t\\ r\] або [^\\ s]
Matches any word character - in this case any letter or digit. Note that underscore (_) is not matched, as is the case with perl regular expressions. Equal to [a-zA-Z0-9]
Цей рядок відповідає будь- якому символу слова — у нашому випадку, літері або цифрі. Зауважте, що символ підкреслювання (_) не вважається символом слова, на відміну від формальних виразів у мові Perl. Цей рядок еквівалентний до рядка [a- zA- Z0- 9]
Matches any non-word character - anything but letters or numbers. Equal to [^a-zA-Z0-9] or [^\\w]
Цей рядок відповідає будь- якому символу, який не є символом запису слів, тобто будь- якому символу, який не є літерою або цифрою. Рядок еквівалентний до рядка [^a- zA- Z0- 9] або [^\\ w]
The abbreviated classes can be put inside a custom class, for example to match a word character, a blank or a dot, you could write [\\w\\.]
Класи- скорочення можна використовувати в межах загальних класів, наприклад, щоб знайти літеру слова, символ пробілу або крапку, ви можете скористатися записом [\\ w\\.]
The POSIX notation of classes, [: lt; class namegt;:] is currently not supported.
Позначення POSIX для класів, [: lt; назва класуgt;:], у поточній версії не підтримується.
Characters with special meanings inside character classes
Символи з особливим призначенням у класах символів
The following characters has a special meaning inside the [] character class construct, and must be escaped to be literally included in a class:
Перелічені далі символи мають особливе призначення у конструкціях класів символів [], отже для включення їх за візуальним значенням до класу ці символи слід екранувати:
Ends the character class. Must be escaped unless it is the very first character in the class (may follow an unescaped caret)
Завершує визначення класу символів. Цей символ слід екранувати, якщо він не є найпершим символом у класі (можна використовувати одразу за неекранованим символом каретки)
^ (caret)
^ (знак вставки)
Denotes a negative class, if it is the first character. Must be escaped to match literally if it is the first character in the class.
Змінює значення вказаного класу на протилежне, якщо є першим символом класу. Цей символ слід екранувати, якщо він є першим символом класу.
- (dash)
- (дефіс)
Denotes a logical range. Must always be escaped within a character class.
Визначає діапазон. Цей символ завжди слід екранувати, якщо він визначає символ у класі символів.
\\ (backslash)
\\ (зворотна навскісна риска)
The escape character. Must always be escaped.
Символ керівної послідовності. Цей символ завжди слід екранувати, якщо він потрібен вам як символ зворотної навскісної риски.
Alternatives: matching one of
Варіанти: пошук одного з
If you want to match one of a set of alternative patterns, you can separate those with _BAR_ (vertical bar character).
Якщо вам потрібно знайти один з декількох варіантів шаблонів, ви можете відокремити ці шаблони символом _BAR_ (вертикальною рискою).
For example to find either John or Harry you would use an expression John_BAR_Harry.
Наприклад, щоб знайти один з рядків, Іван або Юрій, вам слід скористатися виразом Іван_BAR_Юрій.
Sub Patterns
Підшаблони
Sub patterns are patterns enclosed in parentheses, and they have several uses in the world of regular expressions.
Підшаблони — це шаблони взяті у круглі дужки, у світі формальних виразів існує декілька способів використання підшаблонів.
Specifying alternatives
Визначення варіантів
You may use a sub pattern to group a set of alternatives within a larger pattern. The alternatives are separated by the character _BAR_ (vertical bar).
Ви можете скористатися підшаблоном, щоб згрупувати набір варіантів у більший шаблон. Варіанти відокремлюються символом _BAR_ (вертикальною рискою).
For example to match either of the words int, float or double, you could use the pattern int_BAR_float_BAR_double. If you only want to find one if it is followed by some whitespace and then some letters, put the alternatives inside a subpattern: (int_BAR_float_BAR_double)\\s+\\w+.
Наприклад, для того, щоб знайти одне зі слів int, float або double, ви можете скористатися шаблоном int_BAR_float_BAR_double. Якщо вам потрібно знайти одне з цих слів, і вам відомо, що за цим словом має йти пробіл, а потім якісь літери, згрупуйте варіанти у підшаблон: (int_BAR_float_BAR_double)\\ s+\\ w+.
Capturing matching text (back references)
Збереження знайденого тексту (зворотні посилання)
If you want to use a back reference, use a sub pattern to have the desired part of the pattern remembered.
Якщо вам потрібно скористатися зворотним посиланням, скористайтеся групуванням у підшаблон для того, щоб рушій запам’ ятав потрібну частину шаблону.
For example, if you want to find two occurrences of the same word separated by a comma and possibly some whitespace, you could write (\\w+), \\s*\\1. The sub pattern \\w+ would find a chunk of word characters, and the entire expression would match if those were followed by a comma, 0 or more whitespace and then an equal chunk of word characters. (The string \\1 references the first sub pattern enclosed in parentheses)
Наприклад, якщо вам потрібно знайти два однакових слова, відокремлені комою і, можливо, пробільними символами, ви можете скористатися формальним виразом (\\ w+),\\ s *\\ 1. За допомогою підшаблону\\ w+ буде знайдено послідовність символів слів, збіг з формальним виразом буде зареєстровано, якщо за цією послідовністю буде кома, 0 або більше пробільних символів і така сама послідовність символів слів. (Рядок\\ 1 відповідає першому підшаблону, взятому у круглі дужки)
Lookahead Assertions
Умовні вирази з перевіркою
A lookahead assertion is a sub pattern, starting with either? = or?!.
Умовний вираз з перевіркою — це підшаблон, що починається з символів? = або?!.
For example to match the literal string Bill but only if not followed by Gates, you could use this expression: Bill(?! Gates). (This would find Bill Clinton as well as Billy the kid, but silently ignore the other matches.)
Наприклад, для того, щоб знайти рядок Білл, за яким не буде рядка Гейтс, можна скористатися таким виразом: Bill (?! Gates). (Таким чином буде знайдено послідовності Білл Клінтон і Біллі Кід, але проігноровано всі інші варіанти.)
Sub patterns used for assertions are not captured.
Підшаблони, які було використано для перевірки умови, не будуть запам’ ятовуватися рушієм пошуку.
See also Assertions
Див. також Умовні вирази
Characters with a special meaning inside patterns
Символи зі спеціальним значення у шаблонах
The following characters have meaning inside a pattern, and must be escaped if you want to literally match them:
Перелічені нижче символи мають особливе призначення в межах шаблону, отже, якщо вам потрібно буде знайти ці символи за візуальним представленням, вам слід буде екранувати їх:
The escape character.
Символ керівної послідовності.
Asserts the beginning of the string.
Умовний початок рядка.
Asserts the end of string.
Умовне завершення рядка.
() (left and right parentheses)
() (ліва і права круглі дужки)
Denotes sub patterns.
Визначення підшаблону.
{} (left and right curly braces)
{} (ліва і права фігурні дужки)
Denotes numeric quantifiers.
Визначення числових лічильників.
[] (left and right square brackets)
[] (ліва і права квадратні дужки)
Denotes character classes.
Визначення класів символів.
_BAR_ (vertical bar)
_BAR_ (вертикальна риска)
logical OR. Separates alternatives.
Логічне АБО. Відокремлює варіанти значення.
+ (plus sign)
+ (знак « плюс »)
Quantifier, 1 or more.
Лічильник, 1 або більше.
* (asterisk)
* (зірочка)
Quantifier, 0 or more.
Лічильник, 0 або більше.
? (question mark)
? (знак питання)
An optional character. Can be interpreted as a quantifier, 0 or 1.
Необов’ язковий символ. Може бути інтерпретовано яка лічильник, 0 або 1.
Quantifiers allows a regular expression to match a specified number or range of numbers of either a character, character class or sub pattern.
За допомогою лічильників можна виконувати пошук вказаної кількості або певного діапазону кількостей відповідників символу, класу символів або підшаблону.
Quantifiers are enclosed in curly brackets ({and}) and have the general form {[minimum-occurrences][, [maximum-occurrences]]}
Лічильники слід вказувати між фігурними дужками ({і}). У загальному випадку вони виглядають так: {[мінімальна кількість] [, [максимальна кількість]]}
The usage is best explained by example:
Використання найкраще пояснюється прикладом:
Exactly 1 occurrence
Точно один збіг.
Zero or 1 occurrences
Жодного або 1 збіг.
The same, with less work;)
Те саме, але меншими зусиллями;)
At least 5 but maximum 10 occurrences.
Не менше 5, але не більше 10 збігів.
At least 5 occurrences, no maximum.
Не менше 5 збігів, без обмежень згори.
Additionally, there are some abbreviations:
Крім того, існує декілька скорочень:
similar to {0,}, find any number of occurrences.
те саме, що і {0,}, шукати без обмеження на кількість відповідників.
similar to {1,}, at least 1 occurrence.
те саме, що і {1,}, принаймні один відповідник.
similar to {0,1}, zero or 1 occurrence.
те саме, що і {0, 1}, жодного або один відповідник.
Greed
Жадібність
When using quantifiers with no maximum, regular expressions defaults to match as much of the searched string as possible, commonly known as greedy behavior.
За використання лічильників без зазначення максимальної кількості, типово, буде виконано пошук якомога більшої кількості відповідників формального виразу, така поведінка називається жадібною.
Modern regular expression software provides the means of turning off greediness, though in a graphical environment it is up to the interface to provide you with access to this feature. For example a search dialog providing a regular expression search could have a check box labeled Minimal matching as well as it ought to indicate if greediness is the default behavior.
У сучасних рушіях пошуку за формальними виразами передбачено можливість вимикання жадібності, забезпечення доступу до цієї можливості є проблемою лише графічного інтерфейсу. Наприклад, у діалоговому вікні пошуку за формальним виразом може бути поле для позначки з міткою Мінімальна кількість збігів, а також певним чином позначено, що жадібність є типовою поведінкою.
In context examples
Приклади використання
Here are a few examples of using quantifiers
Ось декілька прикладів використання лічильників
Matches the digits in 1234 go and 12345 now, but neither in 567 eleven nor in 223459 somewhere
Буде знайдено цифри у 1234 поїхали і 12345 давай, але не у 567 одинадцять і у 223459 десь
Matches one or more whitespace characters
Буде знайдено один або декілька пробільних символів
(bla){1,}
(ля) {1,}
Matches all of blablabla and the bla in blackbird or tabla
Буде знайдено ляляля, а також ля у словах шабля або пляшка
Matches / gt; in lt; closeditem/ gt; as well as gt; in lt; openitemgt;.
Буде знайдено / gt; у lt; closeditem/ gt;, а також gt; у lt; openitemgt;.
Assertions allows a regular expression to match only under certain controlled conditions.
За допомогою умовних виразів відповідники формального виразу буде знайдено лише за виконання певних керованих умов.
An assertion does not need a character to match, it rather investigates the surroundings of a possible match before acknowledging it. For example the word boundary assertion does not try to find a non word character opposite a word one at its position, instead it makes sure that there is not a word character. This means that the assertion can match where there is no character, & ie; at the ends of a searched string.
За використання умовного виразу не буде виконуватися пошук певного символу, рушій скоріше вивчатиме оточення можливого відповідника формального виразу і визначатиме, чи той це вираз, який вам потрібен. Наприклад, за використання умови межа слова рушій пошуку не намагатиметься знайти символ, який не є символом слова, поряд зі знайденим словом, — рушій просто переконається, що цей символ не є символом слова. Це означає, що за використання умовного виразу, рядок буде знайдено і там, де пробільного символу немає, наприклад, наприкінці рядка.
Some assertions actually do have a pattern to match, but the part of the string matching that will not be a part of the result of the match of the full expression.
У деяких умовних виразах можуть міститися шаблони, але за їх використання виконуватиметься лише перевірка на збіг рядка з вказаним шаблоном, — результат перевірки не буде включено до результатів пошуку.
Regular Expressions as documented here supports the following assertions:
У формальних виразах, описаних у цій документації, підтримуються такі умовні вирази:
^ (caret: beginning of string)
^ (каретка: початок рядка)
Matches the beginning of the searched string.
Пошук на початку рядка.
The expression ^Peter will match at Peter in the string Peter, hey! but not in Hey, Peter!
За виразом ^Петре буде знайдено рядок Петре у рядку Петре, агов!, але не у рядку Агов, Петре!
$(end of string)
$(кінець рядка)
Matches the end of the searched string.
Пошук наприкінці рядка.
The expression you\\? $will match at the last you in the string You did n't do that, did you? but nowhere in You did n't do that, right?
За виразом ти\\? $буде знайдено останнє « ти » у рядку Це зробив не ти?, але нічого не буде знайдено у рядку Це ж не ти зробив?
\\b (word boundary)
\\ b (межа слова)
Matches if there is a word character at one side and not a word character at the other.
Пошук рядка, з одного боку якого стоїть символ запису слів, а з іншого — символ, який не використовується для запису слів.
This is useful to find word ends, for example both ends to find a whole word. The expression \\bin\\b will match at the separate in in the string He came in through the window, but not at the in in window.
Цей вираз корисний для перевірки на те, чи завершується у певному місці слово, наприклад під час пошуку цілого слова. Вираз\\ bу\\ b буде знайдено як окреме слово у у рядку Він увійшов у вікно, але не як частину у слова увійшов.
\\B (non word boundary)
\\ B (відсутність межі слова)
Matches wherever \\b does not.
Пошук всіх відповідників, які не буде пропущено за використання умовного виразу\\ b.
That means that it will match for example within words: The expression \\Bin\\B will match at in window but not in integer or I'm in love.
Такий вираз можна використовувати, наприклад, для пошуку внутрішніх частин слів: вираз\\ Bу\\ B буде знайдено у слові вухо, але не у слові увійшов або виразі Бачив у кіно.
(? =PATTERN) (Positive lookahead)
(? =ШАБЛОН) (перевірка на збіг)
A lookahead assertion looks at the part of the string following a possible match. The positive lookahead will prevent the string from matching if the text following the possible match does not match the PATTERN of the assertion, but the text matched by that will not be included in the result.
За допомогою умовного виразу перевірки на збіг можна перевірити на відповідність частину рядка, яку розташовано безпосередньо за можливим відповідником. За використання перевірки на збіг частина рядка вважатиметься невідповідною, якщо за нею не йде вказаний ШАБЛОН умовного виразу, але текст цього шаблону не буде додано до результату пошуку.
The expression handy(? =\\w) will match at handy in handyman but not in That came in handy!
За виразом зручно (? =\\ w) буде знайдено рядок зручно у слові зручності, а у рядку Це дуже зручно! нічого не буде знайдено.
(? !PATTERN) (Negative lookahead)
(?! ШАБЛОН) (перевірка на відсутність збігу)
The negative lookahead prevents a possible match to be acknowledged if the following part of the searched string does match its PATTERN.
За перевірки на відсутність збігу знайдений рядок не буде вважатися потрібним, якщо за ним йде рядок вказаний як ШАБЛОН.
The expression const \\w+\\b(? !\\s*amp;) will match at const char in the string const char* foo while it can not match const QString in const QStringamp; bar because the amp; matches the negative lookahead assertion pattern.
Вираз const\\ w+\\ b (?!\\ s* amp;) відповідатиме частині const char у рядку const char * foo, але не частині const QString у рядку const QStringamp; bar, оскільки символ amp; збігається з шаблоном перевірки на відсутність збігу.
The & kbugbuster; Handbook
Підручник з & kbugbuster;
No Author Yet
Автора ще немає
& kbugbuster; is part of the kdesdk package.
& kbugbuster; є частиною пакунка kdesdk.