Regex заменить все кавычки между апострофами

Сопоставление и поиск

Чтобы регулярное выражение соответствовало целевой последовательности, все данное выражение должно соответствовать целевой последовательности целиком. Например, регулярное выражение соответствует целевой последовательности, но не соответствует целевой последовательности или целевой последовательности .

Для успешного поиска регулярного выражения одна из частей целевой последовательности должна соответствовать данному регулярному выражению. Обычно результатом поиска является крайняя левая соответствующая часть последовательности.

Примеры:

  • Поиск регулярного выражения в целевой последовательности выполняется правильно и соответствует всей последовательности. Тот же поиск в целевой последовательности также будет выполнен, и в нем будут сопоставлены последние три символа. Такой же поиск в целевой последовательности также будет выполнен и соответствует первым трем символам.

  • Поиск регулярного выражения в целевой последовательности выполняется правильно и соответствует первым трем символам.

При наличии нескольких подследовательностей, совпадающих в одном месте целевой последовательности, существует два способа выбора соответствующего шаблона.

Первое соответствие выбирает часть последовательности, найденную первой при установке соответствия с регулярным выражением.

Наиболее длинное соответствие выбирает самую длинную часть последовательности из соответствующих в данном положении. Если имеется более одной подпоследовательности с максимальной длиной, самое длинное совпадение выбирает тот, который был найден первым.

Например, при использовании первого совпадения поиск регулярного выражения в целевой последовательности соответствует подпоследовательности, поскольку левый термин чередования соответствует этой подпоследовательности, поэтому первое совпадение не пытается использовать правое условие чередования. При использовании наиболее длинного совпадения совпадение поиска совпадает с тем, что больше .

Частичное совпадение завершается успешно, если совпадение достигает конца целевой последовательности без ошибок, даже если оно не достигло конца регулярного выражения. Поэтому после успешного частичного совпадения добавление символов в конец целевой последовательности может вызвать ошибку последующего частичного соответствия. Однако после сбоя частичного совпадения Добавление символов в целевую последовательность не может привести к успешному завершению частичного совпадения. Например, при частичном совпадении соответствует целевой последовательности, но не .

Сокращение шаблонов с квантификаторами

В regex есть понятие квантификаторов, который указывает количество повторений символа слева. Квантификаторы помещаются в фигурные скобки {}. В зависимости от ситуации квантификаторы могут работать по разному:

  • {1,3} — значение повторяется от 1 до 3 раз;
  • {2} — значение слева повторяется два раза;
  • {2,} — повторяется минимум 2 раза.

Можно сократить один из шаблонов, который был написан выше до этого:

Обратите внимание, что в следующем сценарии у нас вернутся все значения т.к. во всех них есть 3 цифры:

Кроме квантификаторов вы можете использовать другие метасимволы:

  • + эквивалентен {1,} , что значит повторение более одного раза;
  • * эквивалентно {0,} , повторение неограниченного количества раз;
  • ? тоже что и {0,1} , повторение или отсутствие символа.

Задача2 – Даты

Предположим, что ведется журнал посещения сотрудниками научных конференций (см. файл примера лист Даты ).

К сожалению, столбец Дата посещения не отсортирован и необходимо выделить дату первого и последнего посещения каждого сотрудника. Например, сотрудник Козлов первый раз поехал на конференцию 24.07.2009, а последний раз – 18.07.2015.

Сначала создадим формулу для условного форматирования в столбцах В и E. Если формула вернет значение ИСТИНА, то соответствующая строка будет выделена, если ЛОЖЬ, то нет.

В столбце D создана формула массива = МАКС(($A7=$A$7:$A$16)*$B$7:$B$16)=$B7 , которая определяет максимальную дату для определенного сотрудника.

Примечание: Если нужно определить максимальную дату вне зависимости от сотрудника, то формула значительно упростится = $B7=МАКС($B$7:$B$16) и формула массива не понадобится.

Теперь выделим все ячейки таблицы без заголовка и создадим правило Условного форматирования . Скопируем формулу в правило (ее не нужно вводить как формулу массива!).

Теперь предположим, что столбец с датами отсортировали и требуется выделить строки у которых даты посещения попадают в определенный диапазон.

Для этого используйте формулу =И($B23>$E$22;$B23

Для ячеек Е22 и Е23 с граничными датами (выделены желтым) использована абсолютная адресация $E$22 и $E$23. Т.к. ссылка на них не должна меняться в правилах УФ для всех ячеек таблицы.

Для ячейки В22 использована смешанная адресация $B23, т.е. ссылка на столбец В не должна меняться (для этого стоит перед В знак $), а вот ссылка на строку должна меняться в зависимости от строки таблицы (иначе все значения дат будут сравниваться с датой из В23 ).

Таким образом, правило УФ например для ячейки А27 будет выглядеть =И($B27>$E$22;$B27 , т.е. А27 будет выделена, т.к. в этой строке дата из В27 попадает в указанный диапазон (для ячеек из столбца А выделение все равно будет производиться в зависимости от содержимого столбца В из той же строки – в этом и состоит “магия” смешанной адресации $B23).

А для ячейки В31 правило УФ будет выглядеть =И($B31>$E$22;$B31 , т.е. В31 не будет выделена, т.к. в этой строке дата из В31 не попадает в указанный диапазон.

Виталий решил открыть депозит, но в Петропавловске-Камчатском, где он живет, банки предлагают по вкладам не больше 4,5% годовых.

А его сестра Наталья, которая переехала в Калининград, рассказывает, что там можно положить деньги в банк и под 6%. Что может сделать Виталий, чтобы стать клиентом банка, у которого нет офиса в его городе?

Выберите один верный ответ

У Виталия есть возможность открыть вклад, а также купить ценные бумаги и оформить страховые полисы в компаниях из других регионов дистанционно — через финансовый маркетплейс

Виталию придется съездить один раз в другой город, заключить договор с нужной ему финансовой организацией и дальше он сможет дистанционно с ней работать — другого выхода нет

Инвестиции — Что нужно знать инвестору 5 вопросов

Поиск совпадений: метод exec

Метод возвращает массив и ставит свойства регулярного выражения.
Если совпадений нет, то возвращается null.

Например,

// Найти одну d, за которой следует 1 или более b, за которыми одна d
// Запомнить найденные b и следующую за ними d
// Регистронезависимый поиск
var myRe = /d(b+)(d)/ig;
var myArray = myRe.exec("cdbBdbsbz");

В результате выполнения скрипта будут такие результаты:

Объект Свойство/Индекс Описания Пример
Содержимое .
Индекс совпадения (от 0)
Исходная строка.
Последние совпавшие символы
Совпадения во вложенных скобках, если есть. Число вложенных скобок не ограничено.
Индекс, с которого начинать следующий поиск.
Показывает, что был включен регистронезависимый поиск, флаг «».
Показывает, что был включен флаг «» поиска совпадений.
Показывает, был ли включен флаг многострочного поиска «».
Текст паттерна.

Если в регулярном выражении включен флаг «», Вы можете вызывать метод много раз для поиска последовательных совпадений в той же строке. Когда Вы это делаете, поиск начинается на подстроке , с индекса . Например, вот такой скрипт:

var myRe = /ab*/g;
var str = "abbcdefabh";
while ((myArray = myRe.exec(str)) != null) {
	var msg = "Found " + myArray + ".  ";
	msg += "Next match starts at " + myRe.lastIndex;
	print(msg);
}

Этот скрипт выведет следующий текст:

Found abb. Next match starts at 3
Found ab. Next match starts at 9

В следующем примере функция выполняет поиск по input. Затем делается цикл по массиву, чтобы посмотреть, есть ли другие имена.

Предполагается, что все зарегистрированные имена находятся в массиве А:

var A = ;

function lookup(input)
{
  var firstName = /\w+/i.exec(input);
  if (!firstName)
  {
    print(input + " isn't a name!");
    return;
  }

  var count = 0;
  for (var i = 0; i < A.length; i++)
  {
    if (firstName.toLowerCase() == A.toLowerCase())
      count++;
  }
  var midstring = (count == 1) ? " other has " : " others have ";
  print("Thanks, " + count + midstring + "the same name!")
}

Как перенести текст на новую строку в Excel с помощью формулы

Иногда требуется сделать перенос строки не разово, а с помощью функций в Excel. Вот как в этом примере на рисунке. Мы вводим имя, фамилию и отчество и оно автоматически собирается в ячейке A6

Для начала нам необходимо сцепить текст в ячейках A1 и B1 ( A1&B1 ), A2 и B2 ( A2&B2 ), A3 и B3 ( A3&B3 )

После этого объединим все эти пары, но так же нам необходимо между этими парами поставить символ (код) переноса строки. Есть специальная таблица знаков (таблица есть в конце данной статьи), которые можно вывести в Excel с помощью специальной функции СИМВОЛ(число), где число это число от 1 до 255, определяющее определенный знак. Например, если прописать =СИМВОЛ(169), то мы получим знак копирайта

Нам же требуется знак переноса строки, он соответствует порядковому номеру 10 — это надо запомнить. Код (символ) переноса строки — 10 Следовательно перенос строки в Excel в виде функции будет выглядеть вот так СИМВОЛ(10)

Примечание: В VBA Excel перенос строки вводится с помощью функции Chr и выглядит как Chr(10)

Итак, в ячейке A6 пропишем формулу

= A1&B1 &СИМВОЛ(10)& A2&B2 &СИМВОЛ(10)& A3&B3

В итоге мы должны получить нужный нам результат

Обратите внимание! Чтобы перенос строки корректно отображался необходимо включить «перенос по строкам» в свойствах ячейки. Для этого выделите нужную нам ячейку (ячейки), нажмите на правую кнопку мыши и выберите «Формат ячеек…»

В открывшемся окне во вкладке «Выравнивание» необходимо поставить галочку напротив «Переносить по словам» как указано на картинке, иначе перенос строк в Excel не будет корректно отображаться с помощью формул.

Как в Excel заменить знак переноса на другой символ и обратно с помощью формулы

Можно поменять символ перенос на любой другой знак, например на пробел, с помощью текстовой функции ПОДСТАВИТЬ в Excel

Рассмотрим на примере, что на картинке выше. Итак, в ячейке B1 прописываем функцию ПОДСТАВИТЬ:

A1 — это наш текст с переносом строки; СИМВОЛ(10) — это перенос строки (мы рассматривали это чуть выше в данной статье); » » — это пробел, так как мы меняем перенос строки на пробел

Если нужно проделать обратную операцию — поменять пробел на знак (символ) переноса, то функция будет выглядеть соответственно:

Напоминаю, чтобы перенос строк правильно отражался, необходимо в свойствах ячеек, в разделе «Выравнивание» указать «Переносить по строкам».

Как поменять знак переноса на пробел и обратно в Excel с помощью ПОИСК — ЗАМЕНА

Бывают случаи, когда формулы использовать неудобно и требуется сделать замену быстро. Для этого воспользуемся Поиском и Заменой. Выделяем наш текст и нажимаем CTRL+H, появится следующее окно.

Если нам необходимо поменять перенос строки на пробел, то в строке «Найти» необходимо ввести перенос строки, для этого встаньте в поле «Найти», затем нажмите на клавишу ALT , не отпуская ее наберите на клавиатуре 010 — это код переноса строки, он не будет виден в данном поле.

После этого в поле «Заменить на» введите пробел или любой другой символ на который вам необходимо поменять и нажмите «Заменить» или «Заменить все».

Кстати, в Word это реализовано более наглядно.

Если вам необходимо поменять символ переноса строки на пробел, то в поле «Найти» вам необходимо указать специальный код «Разрыва строки», который обозначается как ^l В поле «Заменить на:» необходимо сделать просто пробел и нажать на «Заменить» или «Заменить все».

Вы можете менять не только перенос строки, но и другие специальные символы, чтобы получить их соответствующий код, необходимо нажать на кнопку «Больше >>», «Специальные» и выбрать необходимый вам код. Напоминаю, что данная функция есть только в Word, в Excel эти символы не будут работать.

Как поменять перенос строки на пробел или наоборот в Excel с помощью VBA

Рассмотрим пример для выделенных ячеек. То есть мы выделяем требуемые ячейки и запускаем макрос

1. Меняем пробелы на переносы в выделенных ячейках с помощью VBA

Sub ПробелыНаПереносы() For Each cell In Selection cell.Value = Replace(cell.Value, Chr(32) , Chr(10) ) Next End Sub

2. Меняем переносы на пробелы в выделенных ячейках с помощью VBA

Sub ПереносыНаПробелы() For Each cell In Selection cell.Value = Replace(cell.Value, Chr(10) , Chr(32) ) Next End Sub

Код очень простой Chr(10) — это перенос строки, Chr(32) — это пробел. Если требуется поменять на любой другой символ, то заменяете просто номер кода, соответствующий требуемому символу.

Коды символов для Excel

Ниже на картинке обозначены различные символы и соответствующие им коды, несколько столбцов — это различный шрифт. Для увеличения изображения, кликните по картинке.

↑ Ответы с пояснением

Приняли – принять решение, сделать выбор, вывод, дело 
Роль – играть роль, но иметь значение 
Принесли – принести славу, дать возможность, ощущение, уверенность и т.д. 
Значения – иметь значение, играть роль 
Симпатизирует – Симпатизировать – хорошо относиться к кому-либо, импонировать – производить положительное впечатление. 
Оказать – нельзя дать поддержку, можно ее оказать, найти, обеспечить, получить 
Взгляд – бросить взгляд 
Победу – одержать победу, завоевать первенство 
Совершать – совершать поступки, делать вывод, глупости , движения 
Зрения – быть в поле зрения, в центре внимания 
Предшествующих 
Поднимается – нельзя стремительно ползти 
Дать – дать ответ, выразить благодарность, мнение, мысль 
Низкие – низкие цены, дешевые товары 
Косяк – косяк рыб, стая птиц 
Придавал – придавать значение, уделять внимание 
Увеличить – увеличить выпуск продукции, повысить уровень качества 
Вину – загладить вину, брать ответственность 
Заслужить – заслужить уважение 
Играли – играть первую скрипку 
Проявить – проявить заботу, оказать внимание 
Создает – создавать условия, творить дела, добро, чудеса 
Неожиданным- неожиданный, внезапный отъезд, скоропостижная смерть 
Выдвинуть – выдвинуть гипотезу 
Нанести – нанести вред, оказать влияние 
Произведений – отрывки из произведений 
Принимать – принимать во внимание 
Закадычный – закадычный друг, заядлый картежник 
Значения – иметь значение, играть роль 
Принимать – принимать/принять решение, оказать воздействие 
Предложил – предложить руку и сердце 
Табун – табун лошадей, рой пчел 
Совершить – совершить нападение, произвести осмотр, замену, впечатление 
Высказать – высказать догадку, выдвинуть гипотезу 
Победу – одержать победу, первенство принадлежит к.-л. 
Глаз – не смыкать глаз 
Приятное – приятное впечатление 
Установлено – установить рекорд, завоевать уважение, доверие, популярность 
Расширить – расширить кругозор, повысить уровень знаний 
Вызвал – вызвать реакцию, создать образ, условия, видимость 
Преодолевать – преодолевать трудности, беда постигла 
Врожденный – врожденный талант, прирожденный ум 
Вызывать – вызывать аллергические реакции, навлекать беду 
Выдвинуть – выдвинуть гипотезу, высказать мнение 
Старом – старый сад, преклонный возраст 
Открыть – открыть закон, обнаружить большое количество, пропажу 
Успехи – достигнутые успехи 
Присутствием – почтить присутствием 
Коллекционером – коллекционер — тот, кто собирает коллекции, селекционер – человек, выводящий и совершенствующий сорта растений, породу животных или штаммы 
Выгула – выгул собак, выпас овец 

Бросились – броситься врассыпную

Поиск целого и обособленного слова используя шаблоны с boundaries

Я не помню что бы я использовал это на практике, но в Powershell есть возможность искать целое слово по шаблону или его часть. Такая возможность называется границами. 

Представим, что нам нужно найти имя Ян в следующем предложении:

Если искать просто ‘Ян’ — мы получим неверный результат. Мы так же можем не знать, что имя упоминается с восклицательным знаком (мы можем искать это в 100 файлах). Использование точки (обозначает любой следующий символ) тоже никак не поможет:

Избежать таких ситуаций можно поместив слово между метасимволами ‘\b’, которые позволяют искать не часть, а целое слово:

Противоположный вариант, когда мы ищем не отдельное, а часть слова — в таких случаях строка экранируется в ‘\B’. В отличие от предыдущего случая этот метасимвол ставится там, где мы ожидаем продолжение или окончание слова. Хороший пример это окончания:

Эти метасимволы можно сочетать вместе для того что бы указать, где слово заканчивается и где начинается:

Сводка по грамматике

В следующей таблице приведены возможности, доступные в различных грамматиках регулярных выражений:

Элемент basic extended ECMAScript grep egrep awk
чередование с помощью + + + +
чередование с помощью + +
привязка + + + + + +
обратная ссылка + + +
выражение в квадратных скобках + + + + + +
Группа записи с помощью + + + +
Группа записи с помощью + +
управляющая escape-последовательность +
escape-символ DSW +
escape-выражение формата файлов + +
шестнадцатеричная escape-последовательность +
escape-последовательность удостоверения + + + + + +
отрицательное утверждение +
отрицательное утверждение границы слова +
группа незахвата +
«нежадное» повторение +
восьмеричная escape-последовательность +
обычный символ + + + + + +
положительное утверждение +
повторение с помощью + + + +
повторение с помощью + +
повторение с помощью + + + + + +
повторение с помощью и + + + +
escape-последовательность Юникода +
знак подстановки + + + + + +
утверждение границы слова +

Замена значений строк и чисел с replace

Наиболее частая задача для регулярных значений это найти и заменить какое-то значение используя шаблоны. Для таких операций используется replace, который может работать и по точному совпадению:

Более реальный пример — это замена ip адресов или битых ссылок. У нас может быть множество конфигурационных файлов, где используется идентификатор сети, который нужно заменить. Старые идентификаторы сети ‘192.168.3.0’ и ‘192.178.4.0’ и их нужно заменить на ‘10.10.5.0’. Следующий шаблон может сработать иначе с другими примерами:

Такой шаблон сомнительное решение так как у нас может быть и DNS типа ‘192.168.5.1’ и его не нужно менять. К тому же в начале статьи было написано, что точка в регулярных выражениях обозначает любой символ, а значит следующий пример тоже сработает:

Экранирование делается через обратный слэш. В этом примере мы сделаем так, что бы у нас искалась именно точка:

По аналогии с match у replace тоже есть дополнительный параметр:

creplace — замена с учетом регистра.

Часто бывает так, что нужно заменить токи или другой зарезервированный метасимвол. Для успешной замены такие символы нужно экранировать:

Скобочные группы ― ()

a(bc)       создаём группу со значением bc -> тестa(?:bc)*    оперетор ?: отключает группу -> тестa(?<foo>bc) так, мы можем присвоить имя группе -> тест

Этот оператор очень полезен, когда нужно извлечь информацию из строк или данных, используя ваш любимый язык программирования. Любые множественные совпадения, по нескольким группам, будут представлены в виде классического массива: доступ к их значениям можно получить с помощью индекса из результатов сопоставления.

Если присвоить группам имена (используя ), то можно получить их значения, используя результат сопоставления, как словарь, где ключами будут имена каждой группы.

Символьные классы — \d \w \s и .

\d соответствует одному символу, который является цифрой -> тест\w соответствует слову (может состоять из букв, цифр и подчёркивания) -> тест\s соответствует символу пробела (включая табуляцию и прерывание строки). соответствует любому символу -> тест

Используйте оператор с осторожностью, так как зачастую класс или отрицаемый класс символов (который мы рассмотрим далее) быстрее и точнее. У операторов , и также есть отрицания ― исоответственно

У операторов , и также есть отрицания ― исоответственно.

Например, оператор будет искать соответствия противоположенные .

\D соответствует одному символу, который не является цифрой -> тест

Некоторые символы, например , необходимо выделять обратным слешем .

\$\d соответствует строке, в которой после символа $ следует одна цифра -> тест

Непечатаемые символы также можно искать, например табуляцию , новую строку , возврат каретки .

Поиск совпадений одного из нескольких символов

Когда мы не уверены в конкретном символе — мы можем указать несколько использовав квадратные скобки [] . Значения, которые будут помещены в эти скобки будут соответствовать одному значению:

В примере выше ищутся совпадения либо по букве R или P. Можно указывать диапазон значений. Например такое написание говорит, что мы ищем цифры от 1 до 9. Если написать у нас будут искаться числа с 5 до 9, затем с 6 по 9 и т.д.

Ниже мы ищем значения, где есть буквы от ‘с’ до ‘я’, после которых есть буква ‘е’. Во втором примере мы ищем элементы массива, которые начинаются с букв ‘д’ до ‘с’:

Можно использовать любые метасимволы. В примере ниже у нас идет поиск числа или буквы, затем пробела и опять число-буквенное значение:

Вы часто можете увидеть написание похоже на следующее, что обозначает любую букву а A до z, от 0 до 9:

Альтернативы¶

Выражения в списке альтернатив разделяются .

Таким образом, будет соответствовать любому из , или (также как и ).

Первое выражение включает в себя все от последнего разделителя шаблона (, или начало шаблона) до первого , а последнее выражение содержит все от последнего к следующему разделителю шаблона.

Звучит сложно, поэтому обычной практикой является заключение списка альтернатив в скобки, чтобы минимизировать путаницу относительно того, где он начинается и заканчивается.

Выражения в списке альтернатив пробуются слева направо, принимается первое же совпадение.

Например, регулярное выражение в строке будет соответствовать — первое же совпадение.

Также помните, что в квадратных скобках воспринимается просто как символ, поэтому, если вы напишите , это тоже самое что .

Учет регистра

По умолчанию Powershell не чувствителен к регистру, а это значит что все следующие значения будут правдивы:

В большинстве языков у нас вернулось бы только одно значение так как регулярные выражения ассоциируются с учетом регистра. Что бы это исправить это в Powershell есть два варианта. Первый — использование других параметров:

  • cmatch — (case sensitive match) учет регистра;
  • cnotmatch — (case sensitive not match) учет регистра и поиск не совпадающих значений;

Продолжая пример и изменив ключ мы получим верный результат:

Второй вариант — использование возможностей регулярных выражений, где:

  • ‘?i’ — не учитывает регистр;
  • ‘?-i’ — учитывает регистр.

Отличия от параметра cmatch в том, что он работает с места объявления:

Если использовать ключ исключающий учет регистра с cmatch, то в случае ниже вернуться все значения:

Объект RegExp

Объект типа , или, короче, регулярное выражение, можно создать двумя путями

/pattern/флаги
new RegExp("pattern")

— регулярное выражение для поиска (о замене — позже), а флаги — строка из любой комбинации символов (глобальный поиск), (регистр неважен) и (многострочный поиск).

Первый способ используется часто, второй — иногда. Например, два таких вызова эквивалентны:

var reg = /ab+c/i
var reg = new RegExp("ab+c", "i")

При втором вызове — т.к регулярное выражение в кавычках, то нужно дублировать

// эквивалентны
re = new RegExp("\\w+")
re = /\w+/

При поиске можно использовать большинство возможностей современного PCRE-синтаксиса.

Вложенные условия с математическими выражениями.

Вот еще одна типичная задача: цена за единицу товара изменяется в зависимости от его количества. Ваша цель состоит в том, чтобы написать формулу, которая вычисляет цену для любого количества товаров, введенного в определенную ячейку. Другими словами, ваша формула должна проверить несколько условий и выполнить различные вычисления в зависимости от того, в какой диапазон суммы входит указанное количество товара.

Эта задача также может быть выполнена с помощью нескольких вложенных функций ЕСЛИ. Логика та же, что и в приведенном выше примере, с той лишь разницей, что вы умножаете указанное количество на значение, возвращаемое вложенными условиями (т.е. соответствующей ценой за единицу).

Предполагая, что количество записывается в B8, формула будет такая:

И вот результат:

Как вы понимаете, этот пример демонстрирует только общий подход, и вы можете легко настроить эту вложенную функцию в зависимости от вашей конкретной задачи.

Например, вместо «жесткого кодирования» цен в самой формуле можно ссылаться на ячейки, в которых они указаны (ячейки с B2 по B6). Это позволит редактировать исходные данные без необходимости обновления самой формулы:

Проверка позиций и зависимостей

Если нужно найти слово рядом с другим, то мы можем это сделать с помощью специальных символов:

  • (?=Слово) — поиск слова слева;
  • (?<=Слово) — поиск слова справа;
  • (?!Слово) — не совпадает со словом слева;
  • (?<!Слово) — не совпадает со словом слева.

Для примера мы знаем, что после слова ‘зарплату’ будут идти числа и мы хотим узнать их:

Шаблон выше обозначает:

  • (?<=зарплата) — поиск слова справа от ‘зарплата’;
  • \s — затем содержится символ пробела;
  • \w+ — содержится число или буква один или множество раз;
  • \b — слово закачивается.

Аналогичное можно сделать и со словом ‘руб’:

В этом шаблоне:

  • \d+ — говорит, что у нас есть число повторяющееся один или более раз;
  • \s — после числа следует пробел;
  • (?=руб)  — после пробела находится слово ‘руб’.

Остальные варианты нужны, когда вам нужно исключить совпадения по определенному значению.

Unicode категории (category)¶

В стандарте Unicode есть именованные категории символов (Unicode category). Категория обозначается одной буквой, и еще одна добавляется, чтобы указать подкатегорию. Например «L» это буква в любом регистре, «Lu» — буквы в верхнем регистре, «Ll» — в нижнем.

  • Cc — Control
  • Cf — Формат
  • Co — Частное использование
  • Cs — Заменитель (Surrrogate)
  • Ll — Буква нижнего регистра
  • Lm — Буква-модификатор
  • Lo — Прочие буквы
  • Lt — Titlecase Letter
  • Lu — Буква в верхнем регистре
  • Mc — Разделитель
  • Me — Закрывающий знак (Enclosing Mark)
  • Mn — Несамостоятельный символ, как умляут над буквой (Nonspacing Mark)
  • Nd — Десятичная цифра
  • Nl — Буквенная цифра — например, китайская, римская, руническая и т.д. (Letter Number)
  • No — Другие цифры
  • Pc — Connector Punctuation
  • Pd — Dash Punctuation
  • Pe — Close Punctuation
  • Pf — Final Punctuation
  • Pi — Initial Punctuation
  • Po — Other Punctuation
  • Ps — Open Punctuation
  • Sc — Currency Symbol
  • Sk — Modifier Symbol
  • Sm — Математический символ
  • So — Прочие символы
  • Zl — Разделитель строк
  • Zp — Разделитель параграфов
  • Zs — Space Separator

Метасимвол это один символ указанной Unicode категории (category). Синтаксис: или если категория обозначается одним символом, для 2-символьных категорий.

Метасимвол это символ не из Unicode категории (category).

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: