Я знаю, что есть некоторые сообщения о преобразовании строки в строковый литерал строки, но ни один из них не помогает моей ситуации.
Моя проблема:
Скажем, например, я хочу знать, находится ли шаблон "\ section" в тексте "abcd\sectiondefghi". Конечно, я могу это сделать:
import re
motif = r"\\section"
txt = r"abcd\sectiondefghi"
pattern = re.compile(motif)
print pattern.findall(txt)
Это даст мне то, что я хочу. Тем не менее, каждый раз, когда я хочу найти новый шаблон в новом тексте, мне нужно изменить код, который является болезненным. Поэтому я хочу написать что-то более гибкое, например this (test.py):
import re
import sys
motif = sys.argv[1]
txt = sys.argv[2]
pattern = re.compile(motif)
print pattern.findall(txt)
Затем я хочу запустить его в терминале следующим образом:
python test.py \\section abcd\sectiondefghi
Однако это не сработает (я ненавижу использовать \\\\section
).
Итак, есть ли способ конвертировать мой пользовательский ввод (либо из терминала, либо из файла) в строку python raw? Или есть лучший способ сделать компиляцию шаблона регулярного выражения из пользовательского ввода?
Большое спасибо.