Конечно, есть много таких подходов, как синхронный запрос, обещание, но из моего опыта я думаю, что вы должны использовать подход обратного вызова. Естественно, что асинхронное поведение Javascript. Итак, ваш фрагмент кода можно переписать немного иначе:
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
myCallback(response);
}
});
return result;
}
function myCallback(response) {
// Does something.
}
Чтобы извлечь значение в первой скобке
>>> course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)"
>>> x = re.search(r'\(.*?\)',course_name).group()
>>> x
'(PGCPRM)'
И затем заменить
>>> course_name.replace(x,'')
'Post Graduate Certificate Programme in Retail Management (Online)'
Вы можете использовать str.replace()
:
>>> course_name = "Post Graduate Certificate Programme in Retail Management (PGCPRM) (Online)"
>>> course_name.replace('(PGCPRM) ','')
'Post Graduate Certificate Programme in Retail Management (Online)'
edit: если вы хотите заменить слово до (Online)
, вам понадобится регулярное выражение и положительный look-behind :
>>> re.sub(r'(\(\w+\) )(?=\(Online\))','',course_name)
'Post Graduate Certificate Programme in Retail Management (Online)'
Или если вы хотите удалить первые круглые скобки, используйте следующее:
>>> re.sub(r'(\(\w+\) ).*?','',course_name)
'Post Graduate Certificate Programme in Retail Management (Online)'
, а для извлечения используйте re.search
:
>>> re.search(r'(\(.*?\))',course_name).group(0)
'(PGCPRM)'