Использование регулярных выражений
На этом этапе вы научитесь использовать регулярные выражения в Python для определения специальных символов. Регулярные выражения - это мощные инструменты для поиска шаблонов в строках.
Сначала создадим Python-скрипт с именем regex_special_characters.py
в каталоге ~/project
с помощью редактора VS Code.
## Content of regex_special_characters.py
import re
def find_special_characters(text):
special_characters = re.findall(r"[^a-zA-Z0-9\s]", text)
return special_characters
text = "Hello! This is a test string with some special characters like @, #, and $."
special_chars = find_special_characters(text)
print("Special characters found:", special_chars)
Вот что делает этот код:
import re
: Эта строка импортирует модуль re
, который предоставляет операции с регулярными выражениями.
def find_special_characters(text):
: Здесь определяется функция, которая принимает строку в качестве входных данных и находит все специальные символы в ней.
special_characters = re.findall(r"[^a-zA-Z0-9\s]", text)
: Эта строка использует функцию re.findall()
для поиска всех символов во входной строке, которые не являются алфавитно-цифровыми (от a до z, от A до Z, от 0 до 9) или пробелами (\s
). [^...]
- это отрицательный класс символов, то есть он соответствует любому символу, не входящему в указанный набор.
return special_characters
: Эта строка возвращает список найденных специальных символов.
- Остальные строки определяют пример строки, вызывают функцию для поиска специальных символов в ней и выводят результат.
Теперь запустим скрипт. Откройте терминал и выполните следующую команду:
python regex_special_characters.py
Вы должны увидеть следующий вывод:
Special characters found: ['!', '@', ',', '#', '$', '.']
Этот вывод показывает список специальных символов, найденных во входной строке с использованием регулярного выражения.
Давайте изменим скрипт, чтобы использовать другое регулярное выражение, которое соответствует только знакам пунктуации.
Откройте regex_special_characters.py
в VS Code и измените его следующим образом:
## Modified content of regex_special_characters.py
import re
import string
def find_punctuation_characters(text):
punctuation_chars = re.findall(r"[" + string.punctuation + "]", text)
return punctuation_chars
text = "Hello! This is a test string with some punctuation like ., ?, and !."
punctuation = find_punctuation_characters(text)
print("Punctuation characters found:", punctuation)
В этом измененном скрипте мы использовали string.punctuation
для определения набора знаков пунктуации, с которыми будем сравнивать.
Запустите скрипт еще раз:
python regex_special_characters.py
Вы должны увидеть следующий вывод:
Punctuation characters found: ['!', '.', '?', '!']
Этот вывод показывает список знаков пунктуации, найденных во входной строке с использованием регулярного выражения и константы string.punctuation
.
Использование регулярных выражений предоставляет гибкий и мощный способ определения и извлечения специальных символов из строк в Python.