Groovy - регулярные выражения

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

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

def regex = ~'Groovy'

Когда Groovy-оператор = ~ появляется как предикат (выражение, возвращающее логическое значение) в if и whileоператоров (см. главу 8), строковый операнд слева сопоставляется с операндом регулярного выражения справа. Следовательно, каждое из следующих значений дает истинное значение.

При определении регулярного выражения могут использоваться следующие специальные символы:

  • Есть два специальных позиционных символа, которые используются для обозначения начала и конца строки: каретка (∧) и знак доллара ($).

  • Регулярные выражения также могут включать кванторы. Знак плюс (+) представляет один или несколько раз, примененных к предыдущему элементу выражения. Звездочка (*) используется для обозначения нуля или более случаев. Знак вопроса (?) Означает ноль или один раз.

  • Метасимвол {и} используется для соответствия определенному количеству экземпляров предыдущего символа.

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

  • Регулярное выражение может включать классы символов. Набор символов может быть задан как простая последовательность символов, заключенная в метасимволы [и], как в [aeiou]. Для диапазонов букв или цифр можно использовать дефис, например [a – z] или [a – mA – M]. Дополнение к символьному классу обозначается ведущей вставкой внутри квадратных скобок, как в [∧a – z], и представляет все символы, кроме указанных. Некоторые примеры регулярных выражений приведены ниже.

'Groovy' =~ 'Groovy' 
'Groovy' =~ 'oo' 
'Groovy' ==~ 'Groovy' 
'Groovy' ==~ 'oo' 
'Groovy' =~ '∧G' 
‘Groovy' =~ 'G$' 
‘Groovy' =~ 'Gro*vy' 'Groovy' =~ 'Gro{2}vy'