Шаблон Python Regex, не соответствующий первому вступлению, продолжается дальше по строке [дубликат]

Конечно, есть много таких подходов, как синхронный запрос, обещание, но из моего опыта я думаю, что вы должны использовать подход обратного вызова. Естественно, что асинхронное поведение Javascript. Итак, ваш фрагмент кода можно переписать немного иначе:

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            myCallback(response);
        }
    });

    return result;
}

function myCallback(response) {
    // Does something.
}
0
задан Iqbal 19 January 2015 в 12:57
поделиться

2 ответа

Чтобы извлечь значение в первой скобке

>>> 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)'
1
ответ дан Bhargav Rao 5 September 2018 в 07:43
поделиться

Вы можете использовать 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)'
1
ответ дан Kasramvd 5 September 2018 в 07:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: