В Bash вы можете использовать регулярные выражения (regex) в условных операторах, используя ключевое слово [[и оператор =~. Вот несколько методов и примеры кода:
Метод 1: простое сопоставление
string="Hello, World!"
if [[ $string =~ ^Hello ]]; then
echo "The string starts with 'Hello'"
fi
В этом примере проверяется, начинается ли строка с «Hello», с помощью привязки ^в шаблоне регулярного выражения.
Метод 2: сопоставление без учета регистра
string="Hello, World!"
if [[ $string =~ [Hh]ello ]]; then
echo "The string contains 'Hello' or 'hello'"
fi
Этот пример соответствует либо «Привет», либо «привет», используя класс символов [Hh].
Метод 3. Извлечение совпадений
string="My phone number is 123-456-7890"
if [[ $string =~ ([0-9]{3}-[0-9]{3}-[0-9]{4}) ]]; then
echo "Phone number: ${BASH_REMATCH[1]}"
fi
В этом примере из строки извлекается номер телефона в формате 123-456-7890с использованием групп захвата и массива BASH_REMATCH.
Метод 4. Отрицание шаблона
string="Hello, World!"
if [[ ! $string =~ [0-9] ]]; then
echo "The string does not contain any digits"
fi
В этом примере проверяется, не содержит ли строка цифр, с помощью оператора !.