python невозможно использовать переменную в регулярном выражении без необработанного переноса - PullRequest
0 голосов
/ 23 марта 2020

Я не могу использовать переменную p в регулярном выражении:

>>> f="C:\\test\\Win10-20200323080012\\Refactoredtests\\All\\IssueIDcard\\EmptyCard_UserConfirmationPinW\\1E0500E6.png"
>>> p="C:\\test\\Win10-20200323080012\\"

>>> bool(p in f)
True

>>> re.search(rf"^{p}(.*)$",f)
Traceback (most recent call last):
:
re.error: unbalanced parenthesis at position 33
>>> rf"^{p}(.*)$"             
'^C:\\test\\Win10-20200323080012\\(.*)$'

>>> re.search('^C:\\test\\Win10-20200323080012\\(.*)$',f)
Traceback (most recent call last):
:
re.error: unbalanced parenthesis at position 33
# this works using the output of rf"^{p}(.*)$" wrapped in r'':
>>> re.search(r'^C:\\test\\Win10-20200323080012\\(.*)$',f) 
<re.Match object; span=(0, 104), match='C:\\test\\Win10-20200323080012\\Refactoredtests\\'>

repr не работают:

>>> re.search(rf"^{repr(p)}(.*)$",f)                       
>>> rf"^{repr(p)}(.*)$"                                    
"^'C:\\\\test\\\\Win10-20200323080012\\\\'(.*)$"
>>> re.search("^'C:\\\\test\\\\Win10-20200323080012\\\\'(.*)$",f) 

f и p взяты из программы поэтому я не могу обернуть их r''

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...