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

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

  • автор:

Квантификаторы +, *, ? и

Давайте возьмём строку вида +7(903)-123-45-67 и найдём все числа в ней. Но теперь нас интересуют не цифры по отдельности, а именно числа: 7, 903, 123, 45, 67 .

Число — это последовательность из 1 или более цифр \d . Чтобы указать количество повторений, нам нужно добавить квантификатор.

Количество

Самый простой квантификатор — это число в фигурных скобках: .

Он добавляется к символу (или символьному классу, или набору [. ] и т.д.) и указывает, сколько их нам нужно.

Можно по-разному указать количество, например:

Шаблон \d обозначает ровно 5 цифр, он эквивалентен \d\d\d\d\d .

Следующий пример находит пятизначное число:

alert( "Мне 12345 лет".match(/\d/) ); // "12345"

Мы можем добавить \b , чтобы исключить числа длиннее: \b\d\b .

Диапазон: , от 3 до 5

Для того, чтобы найти числа от 3 до 5 цифр, мы можем указать границы в фигурных скобках: \d

alert( "Мне не 12, а 1234 года".match(/\d/) ); // "1234"

Верхнюю границу можно не указывать.

Тогда шаблон \d найдёт последовательность чисел длиной 3 и более цифр:

alert( "Мне не 12, а 345678 лет".match(/\d/) ); // "345678"

Давайте вернёмся к строке +7(903)-123-45-67 .

Число – это последовательность из одной или более цифр. Поэтому шаблон будет \d :

let str = "+7(903)-123-45-67"; let numbers = str.match(/\d/g); alert(numbers); // 7,903,123,45,67

Короткие обозначения

Для самых востребованных квантификаторов есть сокращённые формы записи:

Означает «один или более». То же самое, что и .

Например, \d+ находит числа (из одной или более цифр):

let str = "+7(903)-123-45-67"; alert( str.match(/\d+/g) ); // 7,903,123,45,67

Означает «ноль или один». То же самое, что и . По сути, делает символ необязательным.

Например, шаблон ou?r найдёт o после которого, возможно, следует u , а затем r .

Поэтому шаблон colou?r найдёт два варианта: color и colour :

let str = "Следует писать color или colour?"; alert( str.match(/colou?r/g) ); // color, colour

Означает «ноль или более». То же самое, что и . То есть символ может повторяться много раз или вообще отсутствовать.

Например, шаблон \d0* находит цифру и все нули за ней (их может быть много или ни одного):

alert( "100 10 1".match(/\d0*/g) ); // 100, 10, 1

Сравните это с + (один или более):

alert( "100 10 1".match(/\d0+/g) ); // 100, 10 // 1 не подходит, т.к 0+ требует как минимум один ноль

Ещё примеры

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

Регулярное выражение для десятичных дробей (чисел с плавающей точкой): \d+\.\d+

alert( "0 1 12.345 7890".match(/\d+\.\d+/g) ); // 12.345

Регулярное выражение для «открывающего HTML-тега без атрибутов», например, или

.

alert( " . ".match(/<[a-z]+>/gi) ); //
alert( "

Привет!

".match(/<[a-z][a-z0-9]*>/gi) ); //

Регулярное выражение для «открывающего или закрывающего HTML-тега без атрибутов»: //i

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

alert( "

Привет!

".match(//gi) ); //

,

Чтобы регулярное выражение было точнее, нам часто приходится делать его сложнее

В этих примерах мы видим общее правило: чем точнее регулярное выражение – тем оно длиннее и сложнее.

Например, для HTML-тегов без атрибутов, скорее всего, подошло бы и более простое регулярное выражение: <\w+>. Но стандарт HTML накладывает более жёсткие ограничения на имя тега, так что более точным будет шаблон <[a-z][a-z0-9]*>.

Подойдёт ли нам <\w+>или нужно использовать <[a-z][a-z0-9]*>? А, может быть, нужно ещё его усложнить, добавить атрибуты?

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

Set-Auto Sensitivity Label Rule

Этот командлет доступен только в PowerShell для соответствия требованиям безопасности & . Дополнительные сведения см. в разделе Соответствие требованиям безопасности & PowerShell.

Используйте командлет Set-AutoSensitivityLabelPolicy для изменения правил политики автоматической маркировки в организации.

Сведения о наборах параметров в разделе Синтаксис ниже см. В разделе Синтаксис командлета Exchange.

Синтаксис

Set-AutoSensitivityLabelRule [-Identity] [-AccessScope ] [-ActivationDate ] [-AnyOfRecipientAddressContainsWords ] [-AnyOfRecipientAddressMatchesPatterns ] [-Comment ] [-Confirm] [-ContentContainsSensitiveInformation ] [-ContentExtensionMatchesWords ] [-Disabled ] [-DocumentIsPasswordProtected ] [-DocumentIsUnsupported ] [-ExceptIfAccessScope ] [-ExceptIfAnyOfRecipientAddressContainsWords ] [-ExceptIfAnyOfRecipientAddressMatchesPatterns ] [-ExceptIfContentContainsSensitiveInformation ] [-ExceptIfContentExtensionMatchesWords ] [-ExceptIfDocumentIsPasswordProtected ] [-ExceptIfDocumentIsUnsupported ] [-ExceptIfFrom ] [-ExceptIfFromAddressContainsWords ] [-ExceptIfFromAddressMatchesPatterns ] [-ExceptIfFromMemberOf ] [-ExceptIfHeaderMatchesPatterns ] [-ExceptIfProcessingLimitExceeded ] [-ExceptIfRecipientDomainIs ] [-ExceptIfSenderDomainIs ] [-ExceptIfSenderIPRanges ] [-ExceptIfSentTo ] [-ExceptIfSentToMemberOf ] [-ExceptIfSubjectMatchesPatterns ] [-ExpiryDate ] [-From ] [-FromAddressContainsWords ] [-FromAddressMatchesPatterns ] [-FromMemberOf ] [-HeaderMatchesPatterns ] [-Priority ] [-ProcessingLimitExceeded ] [-RecipientDomainIs ] [-ReportSeverityLevel ] [-RuleErrorAction ] [-SenderDomainIs ] [-SenderIPRanges ] [-SentTo ] [-SentToMemberOf ] [-SubjectMatchesPatterns ] [-WhatIf] [-Workload ] []

Описание

Чтобы использовать этот командлет в PowerShell для соответствия требованиям безопасности & , необходимо назначить разрешения. Дополнительные сведения см. в статье Разрешения на портале соответствия требованиям Microsoft Purview.

Примеры

Пример 1

Set-AutoSensitivityLabelRule -Identity "SocialSecurityRule1" -Comment "Example"

В этом примере свойство правила «Comment» с именем правила SocialSecurityRule1 изменяется на текст «Example».

Параметры

-AccessScope

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

  • InOrganization: правило применяется к содержимому, доступному внутри организации.
  • InOrganization. Правило применяется к содержимому, доступному внутри организации.
  • NotInOrganization. Правило применяется к содержимому, доступному за пределами организации.
Type: AccessScope
Accepted values: InOrganization, NotInOrganization, None
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ActivationDate

Type: System.DateTime
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-AnyOfRecipientAddressContainsWords

Параметр AnyOfRecipientAddressContainsWords задает условие для правила политики автоматической маркировки, которое ищет слова или фразы в адресах электронной почты получателей. Можно указать несколько слов или фраз, разделенных запятыми.

  • Одно слово: «no_reply»
  • Несколько слов: no_reply,urgent.
  • Несколько слов и фраз: «phrase 1″,word1,»phrase with , or spaces»,word2.

Максимальная длина отдельного слова или фразы составляет 128 символов. Максимальное количество слов или фраз — 50.

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-AnyOfRecipientAddressMatchesPatterns

Параметр AnyOfRecipientAddressMatchesPatterns задает условие для правила политики автоматической маркировки, которое ищет текстовые шаблоны в адресах электронной почты получателей с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″|»regular expression2″|. «regular expressionN» .

Максимальная длина отдельного регулярного выражения составляет 128 символов. Максимальное число регулярных выражений — 10.

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-Comment

Параметр Comment указывает необязательный комментарий. Если вы указываете значение, содержащее пробелы, заключите его в кавычки («), например:» Это примечание администратора «.

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-Confirm

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

  • Деструктивные командлеты (например, командлеты Remove-*) имеют встроенную паузу, которая заставляет вас подтвердить команду перед продолжением. Можно пропускать запросы на подтверждение этих командлетов, используя следующий синтаксис: -Confirm:$false .
  • Большинство других командлетов (например, командлеты New-* и Set-*) не имеют встроенной приостановки. Для этих командлетов указание переключателя Confirm без значения вводит паузу, которая заставляет вас подтвердить команду перед продолжением.
Type: SwitchParameter
Aliases: cf
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ContentContainsSensitiveInformation

Параметр ContentContainsSensitiveInformation указывает условие для правила, основанное на совпадении типов конфиденциальной информации в содержимом. Правило применяется к содержимому, которое содержит указанный тип конфиденциальной информации.

Type: PswsHashtable [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ContentExtensionMatchesWords

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

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-Disabled

Параметр Disabled указывает, включено ли правило удержания дел. Допустимые значения:

  • $true: правило отключено.
  • $true. Это значение используется по умолчанию.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-DocumentIsPasswordProtected

Параметр DocumentIsPasswordProtected задает условие для правила политики автоматической маркировки, которое ищет защищенные паролем файлы (так как содержимое файла не удается проверить). Обнаружение паролей работает для документов Office, сжатых файлов (.zip, 7Z, .rar, TAR и т. д.) и .pdf файлов. Допустимые значения:

  • $true. Найдите защищенные паролем файлы.
  • $false: не ищите защищенные паролем файлы.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-DocumentIsUnsupported

Параметр DocumentIsUnsupported указывает условие для правила политики автоматической маркировки, которое ищет файлы, которые не могут быть проверены. Допустимые значения:

  • $true. Найдите неподдерживаемые файлы, которые не могут быть проверены.
  • $false. Не ищите неподдерживаемые файлы, которые не могут быть проверены.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfAccessScope

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

  • InOrganization: правило не применяется к содержимому, доступному внутри организации.
  • InOrganization. Правило не применяется к содержимому, доступному внутри организации.
  • NotInOrganization. Правило не применяется к содержимому, доступному за пределами организации.
Type: AccessScope
Accepted values: InOrganization, NotInOrganization, None
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfAnyOfRecipientAddressContainsWords

Параметр ExceptIfAnyOfRecipientAddressContainsWords задает исключение для правила политики автоматической маркировки, которое ищет слова или фразы на адресах электронной почты получателей. Вы можете указать несколько слов через запятую.

  • Одно слово: «no_reply»
  • Несколько слов: no_reply,urgent.
  • Несколько слов и фраз: «phrase 1″,word1,»phrase with , or spaces»,word2.

Максимальная длина отдельного слова или фразы составляет 128 символов. Максимальное количество слов или фраз — 50.

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfAnyOfRecipientAddressMatchesPatterns

Параметр ExceptIfAnyOfRecipientAddressMatchesPatterns задает исключение для правила политики автоматической маркировки, которое ищет текстовые шаблоны в адресах электронной почты получателей с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″|»regular expression2″|. «regular expressionN» .

Максимальная длина отдельного регулярного выражения составляет 128 символов. Максимальное число регулярных выражений — 10.

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfContentContainsSensitiveInformation

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

Type: PswsHashtable [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfContentExtensionMatchesWords

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

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfDocumentIsPasswordProtected

Параметр ExceptIfDocumentIsPasswordProtected указывает исключение для правила политики автоматической маркировки, которое ищет защищенные паролем файлы (так как содержимое файла не может быть проверено). Обнаружение паролей работает для документов Office, сжатых файлов (.zip, 7Z, .rar, TAR и т. д.) и .pdf файлов. Допустимые значения:

  • $true. Найдите защищенные паролем файлы.
  • $false: не ищите защищенные паролем файлы.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfDocumentIsUnsupported

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

  • $true. Найдите неподдерживаемые файлы, которые не могут быть проверены.
  • $false. Не ищите неподдерживаемые файлы, которые не могут быть проверены.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfFrom

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

  • Имя
  • Псевдоним
  • различающееся имя (DN);
  • различающееся имя (DN);
  • Каноническое краткое имя
  • GUID
Type: RecipientIdParameter [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfFromAddressContainsWords

Параметр ExceptIfFromAddressContainsWords задает исключение для правила политики автоматической маркировки, которое ищет слова или фразы на адресе электронной почты отправителя. Можно указать несколько слов или фраз, разделенных запятыми.

  • Одно слово: «no_reply»
  • Несколько слов: no_reply,urgent.
  • Несколько слов и фраз: «phrase 1″,word1,»phrase with , or spaces»,word2.

Максимальная длина отдельного слова составляет 128 символов. Максимальное количество слов или фраз — 50.

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfFromAddressMatchesPatterns

Параметр ExceptIfFromAddressMatchesPatterns указывает исключение для правила политики автоматической маркировки, которое ищет текстовые шаблоны в адресе электронной почты отправителя с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″|»regular expression2″|. «regular expressionN» .

Максимальная длина отдельного регулярного выражения составляет 128 символов. Максимальное число регулярных выражений — 10.

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfFromMemberOf

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

Update Если значения содержат пробелы или иным образом требуют кавычек, используйте следующий синтаксис: «Value1″,»Value2». «ValueN» .

Type: SmtpAddress [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfHeaderMatchesPatterns

Параметр HeaderMatchesPatterns задает исключение для правила политики автоматической маркировки, которое ищет текстовые шаблоны в поле заголовка с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″,»regular expression2». «regular expressionN» .

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: PswsHashtable
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfProcessingLimitExceeded

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

  • $true. Найдите файлы, в которых не удалось завершить сканирование.
  • $false. Не ищите файлы, в которых не удалось завершить сканирование.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfRecipientDomainIs

Параметр ExceptIfRecipientDomainIs указывает исключение для правила политики автоматической маркировки, которое ищет получателей с адресами электронной почты в указанных доменах. Можно указать несколько доменов, разделенных запятыми.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfSenderDomainIs

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

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfSenderIPRanges

Параметр ExceptIfSenderIpRanges задает исключение для правила политики автоматической маркировки, которое ищет отправителей, IP-адреса которых соответствуют указанному значению или попадают в указанные диапазоны. Допустимые значения:

  • Один IP-адрес: например, 192.168.1.1.
  • Диапазон IP-адресов: например, 192.168.0.1-192.168.0.254.
  • Диапазон IP-адресов бесклассовой междоменной маршрутизации (CIDR): например, 192.168.0.1/25.

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

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfSentTo

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

  • Имя
  • Псевдоним
  • различающееся имя (DN);
  • различающееся имя (DN);
  • Каноническое краткое имя
  • GUID

Update Если значения содержат пробелы или иным образом требуют кавычек, используйте следующий синтаксис: «Value1″,»Value2». «ValueN» .

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfSentToMemberOf

Параметр ExceptIfSentToMemberOf указывает исключение для правила политики автоматической маркировки, которое ищет сообщения, отправляемые членам групп рассылки, динамических групп рассылки или групп безопасности с поддержкой почты. Группы определяются по адресу электронной почты. Вы можете указать несколько значений, разделив их запятыми.

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: RecipientIdParameter [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExceptIfSubjectMatchesPatterns

Параметр ExceptIfSubjectMatchesPatterns указывает исключение для правила политики автоматической маркировки, которое ищет текстовые шаблоны в поле Тема сообщений с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″|»regular expression2″|. «regular expressionN» .

Максимальная длина отдельного регулярного выражения составляет 128 символов. Максимальное число регулярных выражений — 10.

Это исключение можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ExpiryDate

Этот параметр зарезервирован для внутреннего использования корпорацией Майкрософт.

Type: System.DateTime
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-From

Этот параметр зарезервирован для внутреннего использования корпорацией Майкрософт.

Type: RecipientIdParameter [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-FromAddressContainsWords

Параметр FromAddressContainsWords задает условие для правила политики автоматической маркировки, которое ищет слова или фразы в адресе электронной почты отправителя. Можно указать несколько слов или фраз, разделенных запятыми.

  • Одно слово: «no_reply»
  • Несколько слов: no_reply,urgent.
  • Несколько слов и фраз: «phrase 1″,word1,»phrase with , or spaces»,word2.

Максимальная длина отдельного слова составляет 128 символов. Максимальное количество слов или фраз — 50.

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-FromAddressMatchesPatterns

Параметр FromAddressMatchesPatterns указывает условие для правила политики автоматической маркировки, которое ищет текстовые шаблоны в адресе электронной почты отправителя с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″|»regular expression2″|. «regular expressionN» .

Максимальная длина отдельного регулярного выражения составляет 128 символов. Максимальное число регулярных выражений — 10.

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-FromMemberOf

Этот параметр зарезервирован для внутреннего использования корпорацией Майкрософт.

Type: SmtpAddress [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-HeaderMatchesPatterns

Параметр HeaderMatchesPatterns задает условие для правила политики автоматической маркировки, которое ищет текстовые шаблоны в поле заголовка с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″,»regular expression2». «regular expressionN» .

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: PswsHashtable
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-Identity

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

  • имя;
  • различающееся имя (DN);
  • GUID
Type: ComplianceRuleIdParameter
Position: 0
Default value: None
Required: True
Accept pipeline input: True
Accept wildcard characters: False
Applies to: Security & Compliance

-Priority

Этот параметр зарезервирован для внутреннего использования корпорацией Майкрософт.

Type: System.Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ProcessingLimitExceeded

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

  • $true. Найдите файлы, в которых не удалось завершить сканирование.
  • $false. Не ищите файлы, в которых не удалось завершить сканирование.
Type: Boolean
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-RecipientDomainIs

Параметр RecipientDomainIs задает условие для правила политики автоматической маркировки, которое ищет получателей с адресами электронной почты в указанных доменах. Можно указать несколько доменов, разделенных запятыми.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-ReportSeverityLevel

Параметр ReportSeverityLevel указывает уровень серьезности отчета об инцидентах для обнаружения содержимого на основе правила. Допустимые значения:

  • Нет. Это значение невозможно выбрать, если в правиле не настроены действия.
  • None. Это значение нельзя выбрать, если для правила не настроены действия.
  • Средняя
  • Высокая
Type: RuleSeverity
Accepted values: Low, Medium, High, None, Informational, Information
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-RuleErrorAction

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

  • Ignore
  • RetryThenBlock
  • RetryThenBlock
Type: PolicyRuleErrorAction
Accepted values: Ignore, RetryThenBlock
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-SenderDomainIs

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

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-SenderIPRanges

Параметр SenderIpRanges задает условие для правила политики автоматической конфиденциальности, которое ищет отправителей, IP-адреса которых соответствуют указанному значению или попадают в указанные диапазоны. Допустимые значения:

  • Один IP-адрес: например, 192.168.1.1.
  • Диапазон IP-адресов: например, 192.168.0.1-192.168.0.254.
  • Диапазон IP-адресов бесклассовой междоменной маршрутизации (CIDR): например, 192.168.0.1/25.

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

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-SentTo

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

  • Имя
  • Псевдоним
  • различающееся имя (DN);
  • различающееся имя (DN);
  • Каноническое краткое имя
  • GUID

Update Если значения содержат пробелы или иным образом требуют кавычек, используйте следующий синтаксис: «Value1″,»Value2». «ValueN» .

Это условие можно использовать в политиках автоматической конфиденциальности, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-SentToMemberOf

Параметр SentToMemberOf задает условие для правила политики автоматической маркировки, которое ищет сообщения, отправляемые членам групп рассылки, динамических групп рассылки или групп безопасности с поддержкой почты. Группы определяются по адресу электронной почты. Вы можете указать несколько значений, разделив их запятыми.

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: RecipientIdParameter [ ]
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-SubjectMatchesPatterns

Параметр SubjectMatchesPatterns задает условие для правила политики автоматической маркировки, которое ищет текстовые шаблоны в поле Тема сообщений с помощью регулярных выражений. Можно указать несколько текстовых шаблонов с помощью следующего синтаксиса: «regular expression1″|»regular expression2″|. «regular expressionN» .

Максимальная длина отдельного регулярного выражения составляет 128 символов. Максимальное число регулярных выражений — 10.

Это условие можно использовать в политиках автоматической маркировки, которые относятся только к Exchange.

Type: MultiValuedProperty
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-WhatIf

Параметр WhatIf не работает в PowerShell для соответствия требованиям безопасности & .

Type: SwitchParameter
Aliases: wi
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

-Workload

Параметр Workload указывает рабочую нагрузку. Допустимые значения:

  • Exchange
  • OneDriveForBusiness
  • SharePoint
Type: Workload
Accepted values: Exchange, SharePoint, OneDriveForBusiness
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False
Applies to: Security & Compliance

Обратная связь

Были ли сведения на этой странице полезными?

Краткая справка о синтаксисе регулярных выражений¶

В этот список помещены наиболее используемые / трудные для запоминания части движка регулярных выражений, доступные в calibre почти везде.

Классы символов¶

Классы символов полезны для краткого представления различных групп символов.

Обозначение

Класс

Строчные буквы. Не включает символы с ударением и лигатурами.

Строчные буквы от а до я а также цифры от 0 до 9.

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

Любые символы, кроме цифр. Каретка (^), помещенная в начале класса, исключает символы класса (дополненный класс).

Строчные согласные. Класс может быть включен в класс. Символы — исключают то, что следует за ними

Все буквы (включая иностранные акцентированные символы). Сокращенные классы могут использоваться внутри класса

[^<>]+> to select an HTML tag 

Сокращенные классы символов¶

Обозначение

Класс

Цифра (то же, что и [0-9] )

Любой нецифовой символ (то же, что и [^0-9] )

Буквенно-цифровой символ ( [a-zA-Z0-9] ), включая символы с меткой ударения и лигатуры

Любой “non-word” («несловесный») символ

Space (пробел), non-breaking space (неразрывный пробел), tab (табуляция), return line (обратная строка)

Любой символ «без пробелов»

Любой символ кроме новой строки. Используйте флажок «dot all» или модификатор regexp (?s) , чтобы включить символ новой строки.

Квантификаторы¶

Квантификатор

Количество вхождений выражения, предшествующего квантификатору

0 или 1 повторение регулярного выражения. Эквивалентно .

Одно или более повторение регулярного выражения. Эквивалентно .

Любое — 0, 1 или более — количество повторений регулярного выражения. Эквивалентно .

Ровно n повторений регулярного выражения.

Количество повторений регулярного выражения, не менее min раз и не более max раз.

Не менее min повторений регулярного выражения.

Количество вхождений между 0 и включенным максимальным значением

Жадность¶

По умолчанию в квантификаторах механизм регулярных выражений является жадным: он максимально расширяет выбор. Поначалу это часто вызывает сюрпризы. « ? « следует за квантификатором, чтобы сделать его ленивым. Старайтесь не ставить два в одном выражении, результат может быть непредсказуемым.

Остерегайтесь вложенных квантификаторов, например, шаблона (a*)* , поскольку он экспоненциально увеличивает время обработки.

Перечисление¶

Символ | в регулярном выражении соответствует логическому ИЛИ ( OR ). Т. е. могут совпадать либо предыдущее, либо последующее выражения.

Исключение¶

выбирает Blabla, в строках Blabla или «Blabla или Blabla», но не в «Blabla».

выбирает Blabla, в строках Blabla или «Blabla или Blabla», но не в «Blabla».

Якоря¶

Якорь — это способ сопоставления логического расположения в строке, а не символа. Наиболее полезными якорями для обработки текста являются:

\b

Обозначает границу слова, то есть переход от пробела к непропробельному символу. Например, вы можете использовать \bsurd для сопоставления с surd , но не absurd .

^

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

$

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

\K

Сбрасывает начальную позицию выделения в его позицию в шаблоне. Некоторые движки регулярных выражений (но не calibre) не позволяют просматривать данные переменной длины, особенно с квантификаторами. Когда вы можете использовать \K с этими движками, это также позволяет вам избавиться от этого предела, написав эквивалент положительного взгляда позади длины переменной.

Группы¶

(выражение)

Группа захвата, которая хранит выбор и может быть вызвана позже в шаблонах search или replace на \n , где « n« — порядковый номер группы захвата (начиная с 1 в порядке чтения)

(?:выражение)

Группа, которая не захватывает выбор

(?>expression)

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

(?|expression)

Группа сброса ветвей: ветви чередований, включенные в выражение, имеют одинаковые номера групп

(?expression)

Группа под названием «имя». Выбор может быть вызван позже в шаблоне search с помощью (?P=name) и в replace на \g . Две разные группы могут использовать одно и то же имя.

Взгляды по сторонам¶

Взгляд по сторонам

Смысл

Позитивный lookahead (взгляд вперёд) (будет размещен после выделения)

Негативный lookahead (взгляд вперёд) (ставится после выделения)

Позитивный lookbehind (взгляд назад) (ставится перед выделением)

Негативный lookbehind (взгляд назад) (ставится перед выделением)

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

Группы могут быть помещены в lookarounds (взгляды по сторонам), но захват редко полезен. Тем не менее, если это будет полезно, необходимо будет быть очень осторожным при использовании квантификатора во взгляде назад: жадность, связанная с отсутствием обратного отслеживания, может дать неожиданный захват. По этой причине, используйте \K , а не положительный взгляд назад (positive lookbehind), когда у вас есть квантификатор (или, что еще хуже, несколько) в группе захвата положительного взгляда назад (positive lookbehind).

Пример негативного взгляда вперёд:

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

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

Рекурсия¶

Обозначение

Смысл

Рекурсия всего шаблона

Рекурсия единственного шаблона нумерованной группы захвата, здесь группа 1

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

start-pattern(?>atomic sub-pattern|(?R))*end-pattern

Чтобы выбрать строку между двойными кавычками, не останавливаясь на встроенной строке:

Этот шаблон также можно использовать для изменения пар тегов, которые могут быть встроены, таких как теги .

Специальные символы¶

Обозначение

Символ

Регулярные выражения в Loginom

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

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

Например, база данных содержит коды товаров «А101» и «А102», которые должны быть заменены на единый код — «В100». Один из вариантов решения — применение регулярного выражения, при помощи которого данное действие можно выполнить за один шаг.

Для работы с регулярными выражениями необходимо знать их синтаксис. Существует множество сайтов c его описанием и приложений, помогающих создать корректные выражения, например, regex101.com. Плохо написанные регулярные выражения могут снизить производительность, не исключена потеря данных, поэтому этот инструмент стоит использовать с осторожностью.

Синтаксис регулярных выражений

Регулярное выражение — это последовательность символов, написанных по определенным правилам. Чаще всего их используют для поиска и замены с учетом сложных условий. Фактически регулярное выражение — это однострочная программа.

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

Применение символов

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

  • [абм] — буква «а» или «б» или «м».
  • [m,k t] — «m», «k», «t», запятая или пробел.
  • [19] — цифра 1 или 9.

Диапазон задается, когда между символами появляется «-».

  • [0-4] — соответствует диапазону от 0 до 4.
  • [а-яА-ЯёЁ] — соответствует всем буквам кириллицы.
  • [A-Za-z] — соответствует всем буквам латинского алфавита.

Исключение символов — если внутри квадратных скобок записать циркумфлекс (каретка) «^». Так, выражению [^reg] соответствует любой символ, кроме «r», «e» и «g».

Начало и конец строки задаются символами каретки ^ и доллара $ . Они называются «якоря». Каретка означает совпадение с началом текста, а доллар — с концом. Например, выбор первой буквы ( ^m — mmmm) и последней ( m$ — mmmm). Выражение ^..$ используется для проверки того, что строка полностью соответствует заданному шаблону.

Метасимволы и квантификаторы

Метасимволы — это специальные символы, которые имеют особое значение и функцию при работе с регулярными выражениями: . ^ $ * + ? < >[ ] \ | ( ) .

Чтобы использовать метасимволы как обычные символы, их необходимо экранировать, добавляя «\» перед ними.

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

Например, ^[0-9]$ соответствует двум вхождениям любой цифры.

Некоторые часто используемые конструкции получили в языке регулярных выражений специальные обозначения:

  • * — ноль или большее число вхождений символов в строку. Эквивалентно комбинации ;
  • + — одно или большее число вхождений символов в строку. Эквивалентно комбинации ;
  • ? — ни одного или одно вхождение символов в строку. Эквивалентно комбинации .

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

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

Некоторые квантификаторы имеют две версии:

  • Жадная версия. Данный квантификатор пытается найти максимально возможное число соответствий элемента.
  • Нежадная (ленивая) версия. При использовании нежадных идентификаторов предпринимается попытка найти минимально возможное число соответствий элемента.

Можно превратить жадный квантификатор в отложенный квантификатор, добавив ? . Например, — соответствует любому символу, один или несколько раз найденному между .

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

Без скобок шаблон ma+ означает символ m и идущий после него символ a , который повторяется один или более раз. Например, maaa или maaaaaaa . Скобки группируют символы вместе. Так что (ma)+ означает ma , mama и так далее.

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

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

Например, регулярное выражение: «(?:[0-9]-)[0-9]-[0-9]» соответствует шаблону СНИЛСа («723-086-67890»), но не сохраняет первую группу (три цифры и дефис) в отдельную захватывающую группу.

Поиск слова с различным окончанием может быть описан так: (?:бел(?:ая|ый)) . Результат: белая, белый, но не белОЕ.

Также в регулярных выражениях существуют специальные классы символов. Они упрощают поиск определенных типов символов в тексте. Специальные классы символов позволяют сократить запись в регулярных выражениях и делают их более читаемыми. Например, \d соответствует любой последовательности из трех цифр, а \w+ соответствует любому слову (последовательности букв, цифр или символов подчеркивания).

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

Далее рассмотрим применение регулярных выражений в компоненте Калькулятор платформы Loginom.

Регулярные выражения в Loginom

В платформе Loginom используется библиотека PCRE2 (Perl Compatible Regular Expressions 2). Она позволяет использовать регулярные выражения в стиле Perl с некоторыми отличиями. Синтаксис PCRE2 мощнее и гибче, чем стандартные регулярные выражения POSIX.

При работе в Калькуляторе в режиме JavaScript доступны регулярные выражения данного языка, с отличающимся от синтаксиса PCRE2. Подробнее о регулярных выражениях с JavaScript можно прочитать здесь.

С помощью регулярных выражений на платформе Loginom можно решить следующие задачи:

  • поиск и гибкая замена;
  • подготовка и обработка данных;
  • минимизация написания кода и другие.

Для их решения можно воспользоваться встроенными функциями Калькулятора:

  • RegExEmail. Извлекает Email-адрес из строки.
  • RegExDomain. Извлекает адрес веб-сайта из строки.
  • RegExMatch. Осуществляет проверку строки на соответствие регулярному выражению.
  • RegExMatchedExp. Возвращает часть строки, соответствующую регулярному выражению.
  • RegExMatchCount. Возвращает число фрагментов строки, соответствующих заданному регулярному выражению.
  • RegExMatchedNamedSubExp. Возвращает группу части строки, соответствующую регулярному выражению.
  • RegExMatchedSubExp. Извлекает группу фрагмента строки, соответствующую заданному регулярному выражению.
  • RegExReplace. Заменяет определенную часть вхождений подстроки или символа в строке на другую подстроку или символ.
  • RegExReplaceAll. Возвращает строку, в которой все вхождения регулярного выражения будут заменены на строку замены.

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

Поиск и замена осуществляются по:

  • точному совпадению;
  • регулярному выражению.

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

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

В связи с тем, что регулярные выражения необходимо компилировать, их применение может снизить скорость выполнения программы и увеличить потребление памяти. Однако, в платформе Loginom есть альтернативные возможности работы со строками, которые могут быть более эффективными в некоторых случаях.

Когда стоит избегать написания регулярных выражений

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

Замена целиком строки или слова

Для замены строки нет необходимости в регулярных выражениях. В Loginom есть компонент Замена. Замену можно произвести по точному значению. Например, номеру телефона или паспортным данным.

Если в строке есть слово, которое необходимо заменить, в частности, код товара, можно применить функцию Replace в Калькуляторе. Передаем следующие параметры: Replace(Name,»А101″,»В101″, true, true).

Проверка даты

Для проведения проверки даты можно применить регулярное выражение, как пример:

Синтаксис непростой и при написании легко допустить ошибку. В Калькуляторе представлена функция StrToDate, которая справится с этой задачей без самостоятельного написания регулярного выражения. Функция конвертирует строку, содержащую дату, в формат типа «Дата и Время». Вид можно задать по своему усмотрению.

Выделение подстроки

Для извлечения символов из строки без учета того, будут это буквы или цифры, можно воспользоваться функциями Калькулятора Right или Left. Необходимо передать нужное количество символов.

В компоненте Калькулятор есть возможность извлечь подстроку из строки с определенной позиции и нужной длины. Для этого стоит воспользоваться функцией SubStr.

Готовые регулярные выражения

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

Кроме того в Калькулятор встроена функция для проверки домена RegExDomain. Шаблон регулярного выражения доменного имени самостоятельно писать не требуется.

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

Регулярные выражения для нетривиальных задач

Кейс 1 — удаление лишних символов

Используем функцию: RegExReplaceAll.

  • символы . и ; , которые необходимо удалить;
  • поле «Name»;
  • строка, которая будет вставлена вместо части входной строки, в данном случае это пустота.

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

Можно использовать другое регулярное выражение: [^(а-я)|^(А-Я)|(\s)] . Останутся только строчные буквы, заглавные буквы и пробелы, а все остальные символы будут удалены.

Кейс 2 — поиск заданных строк

В базе следующие данные.

Необходимо узнать, какие препараты представлены в упаковках по 10 или 30 грамм. Воспользуемся функцией RegExMath . Передаем следующие аргументы: RegExMatch(«((10)|(30)) г», Name) .

Кейс 3 — валидация номеров телефонов

Одним из решений, является применение функции с аргументами. RegExMatchedExp(«^((\+?7|8)[\-]?)?((\([0-9]\))|([0-9]))?([\-])?([0-9][\-]?[0-9][\-]?[0-9])$», Phone) .

Она возвращает только те номера, которые прошли верификацию.

Кейс 4 — выделение фамилии

Фамилия и паспортные данные находятся в одном столбце. Необходимо их разделить.

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

В нашем примере: RegExMatchedExp(«[А-Я][а-яё]», Name) .

Это регулярное выражение означает, что фамилия начинается с заглавной буквы, остальные символы строчные. Наибольшая длина — 50 символов. Обратите внимание: «ё» не входит в интервал «а-я», поэтому ее необходимо указывать отдельно.

Кейс 5 — выделение номера договора

Номер договора содержит лишние символы и дату. Разделим строку на номер договора и дату подписания.

Номер договора получаем через функцию RegExMatchedExp и регулярного выражения [0-9]+ . Дату с помощью двух функций: Right и StrToDate .

Кейс 6 — поиск вхождения строк

В наших данных есть информация о вспомогательных веществах препарата. Необходимо узнать, где присутствует «желатин» или «сахароза». Воспользуемся функцией RegExMatch, она проверяет соответствие строки регулярному выражению. Зададим поля: RegExMatch(«(желатин)|(сахароза)», substance) . Получаем результат.

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

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

Когда применять регулярные выражения

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

На небольшом наборе данных разница не ощущается, но с увеличением выборки различие в производительности может стать заметным. Однако, если простые функции обработки строк не способы решить задачу, то имеет смысл использовать регулярные выражения на платформе Loginom.

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

Работа с регулярными выражениями на платформе Loginom имеет свои плюсы и минусы.

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

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

Дополнительные материалы:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *