У меня есть этот код:Справка по использованию Regex Python?
import re
#TEST CASES
match_dict = ['hello(here)',
'Hello (Hi)',
"'dfsfds Hello (Hi) fdfd' Hello (Yes)",
"Hello ('hi)xx')",
"Hello ('Hi')"]
for s in match_dict:
print "INPUT: %s" % s
m = re.sub(r"(?<!\()'[^']+'", '', s, flags=re.M)
paren_quotes = re.findall(r"Hello\s*\('([^']+)'\)", m, flags=re.M)
output = paren_quotes if paren_quotes else []
m = re.sub(r"Hello\s*\('[^']+'\)", '', m, flags=re.M)
paren_matches = re.findall(r"Hello\s*\(([^)]+)\)", m, flags=re.M)
if paren_matches:
output.extend(paren_matches)
print 'OUTPUT: %s\n' % output
Этот код сделан для вывода все в скобках после слова «Hello»,
Hello (Hi) would give 'Hi'
Моя проблема заключается в том, что когда я ставлю в:
Hello('Hi')
... Он по-прежнему возвращает 'Hi'
, когда я хочу, чтобы он вернулся "'Hi'"
Кто-нибудь знает, как я могу исправить этот код?
Пожалуйста, используйте соответствующее название, которое вскоре описывает вашу проблему. Мы знаем, что вам нужна помощь, иначе вы не спросите. Мы также знаем, что ваш вопрос касается регулярных выражений и Python, поскольку он помечен как таковой. –
Итак ... Вы пытаетесь захватить текст между круглыми скобками? –
Я ошибаюсь, или это похоже на сложный подход к цели? – jdi