LINUX.ORG.RU

Экранирование круглых скобок

 


1

2

Python 3. Надо заменить, например, «claim 21(7)» на «par. 21(7)».

match=re.search('claim\s(\d+\(\d)',line)
Вызывает ошибку unbalanced parenthesis. Почему? Скобка же экранирована.
match=re.search('claim\s(\d+\(\d+\))',line)
вообще ничего не находит.
# claim 21(7
match=re.search('claim\s(\d+)'r'(''\d+)',line)
if match:
        replace_what=match.group(0)
        replace_with='par. '+match.group(1)+match.group(2)
        line=re.sub(replace_what,replace_with,line)
Работает, однако заменяет любое вхождение «claim \d» на «par \d», даже без последующих скобок.

Deleted

#!/usr/bin/python

import re
line="claim 21(7)"
match=re.search('claim\s(\d+\(\d\))', line)
print match.group(1)
if match:
    replace_what=match.group(0)
    replace_with='par. '+match.group(1)
    line=line.replace(replace_what,replace_with)
    print line
anonymous
()

Гм, ты же был почти близок?

match=re.search(r'claim\s(\d+\(\d)', 'claim 21(7)')
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.