Monday, June 27, 2022

re — Regular expression operations

 re — Операции с регулярными выражениями

https://docs.python.org/3/library/re.html






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

И шаблоны, и строки для поиска могут быть строками Unicode (str), а также 8-битными строками (bytes). Однако строки Unicode и 8-битные строки нельзя смешивать: то есть вы не можете сопоставлять строку Unicode с шаблоном байтов или наоборот; аналогично, при запросе замены строка замены должна быть того же типа, что и шаблон, и строка поиска.

В регулярных выражениях используется символ обратной косой черты ('\') для обозначения специальных форм или для разрешения использования специальных символов без обращения к их особому значению. Это противоречит тому, что Python использует один и тот же символ для той же цели в строковых литералах; например, чтобы сопоставить литеральную обратную косую черту, может потребоваться написать '\\\\' в качестве строки шаблона, потому что регулярное выражение должно быть \\, а каждая обратная косая черта должна быть выражена как \\ внутри обычного строкового литерала Python. Кроме того, обратите внимание, что любые недопустимые escape-последовательности при использовании Python обратной косой черты в строковых литералах теперь генерируют предупреждение об устаревании, а в будущем это станет SyntaxError. Такое поведение произойдет, даже если это допустимая управляющая последовательность для регулярного выражения.

Решение состоит в том, чтобы использовать нотацию необработанных строк Python для шаблонов регулярных выражений; обратная косая черта не обрабатывается каким-либо особым образом в строковом литерале с префиксом 'r'. Итак, r"\n" — это двухсимвольная строка, содержащая '\' и 'n', а "\n" — односимвольная строка, содержащая новую строку. Обычно шаблоны будут выражены в коде Python с использованием этой записи необработанных строк.

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

(.env) boris@boris-All-Series:~/VOTING/PCA$ cat extractReCoeff1.py

import re

equations = ["3x+2y+5", "2x-4y+0", "8x+7y-3", "3x+1y-0.5"]

for string_line in equations:

     coeff = re.findall(r'[\d\.\-\+]+', string_line)

     print(coeff)

(.env) boris@boris-All-Series:~/VOTING/PCA$ python3 extractReCoeff1.py

['3', '+2', '+5']

['2', '-4', '+0']

['8', '+7', '-3']

['3', '+1', '-0.5']






























No comments:

Post a Comment