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