Как я получаю специфическую цепь в string используя регулярные выражения Пайтона

У меня есть этот string: color-purple, designer-allison_parris, formality-6, sizescale-us_combined, type-dress От чего я нуждаюсь в том, чтобы получить только слово, которое находится после color-, или же я нуждаюсь в том, чтобы получить purple.

Спасибо за Вашу помощь.

2
задан 11.07.2016, 22:20
2 ответа

Попытайся со следующим регулярным выражением:

.*?color-(\w+).*

Объяснение:

  • .*? ⇒ любой символ, кроме \n (0 или более раз (что он совпал с самым меньшим возможным количеством))
  • color- ⇒ текст color-
  • (группировать и захватывать в группе 1:
  •    \w+ ⇒ символы слова (a-z, A-Z, 0-9, _) (1 или более разы (что он совпал с самым большим возможным количеством))
  • ) ⇒ конец группы 1
  • .* ⇒ любой символ, кроме \n (0 или более раз (что он совпал с самым большим возможным количеством))

Визуально:

visual

Группа 1 может возвращать в Пайтоне, как останься:

  • Код:

    import re
    
    str = 'color-purple, designer-allison_parris, formality-6, sizescale-us_combined, type-dress'
    match = re.search(r'.*?color-(\w+).*', str)
    
    if match:
        print match.group(1)
    
  • Выход:

    purple
    

Видеть demo интерактивно.

3
ответ дан 24.11.2019, 13:51
  • 1
    Совершенный, функционируй. Большое спасибо! –  Elvis Saavedra 13.07.2016, 02:54
  • 2
    #161; Цюй и # 233; хорошо! - и #161; Услышь, друг! Возможно ты забыл принять ответ.;) –  Paul Vargas 15.07.2016, 01:05

привет, понимая, что это всегда - цвет она первый слово, ты можешь использовать просто python string он повторно нравится и remplazar phyton ни из-за чего, например:

цепь = "цвет - purple, designer-allison_parris, formality-6, sizescale-us_combined, type-dress" cadena2 = cadena.replace ("цвет", "")

также ты мог бы использовать:

цепь = "цвет - purple, designer-allison_parris, formality-6, sizescale-us_combined, type-dress" cadena2 = цепь [4:] #es говорить цепи, возвращает положения 4 до конца

в случае, если слово изменит место, тогда сначала использовать поиски:

цепь = "цвет - purple, designer-allison_parris, formality-6, sizescale-us_combined, type-dress" poscicion_inicial = cadena.find ("цвет") # это возвратило бы положение, где начинает слово цвет posicion_inicial = posicion_inicial + 5 # aГ±aden 5 характеров, так как у цвета есть 5, в случае когда один хочет включить - добавить больше cadena2 = цепь [posicion_inicial:] # он возвращает цепь с начального положения, вычисленного до конца.

также это добавляет, чтобы получать только цвет, в котором ты нуждаешься:

цепь = "цвет - purple, designer-allison_parris, formality-6, sizescale-us_combined, type-dress"

cadena_color = cadena.split (",") [0] .trim # split разделяет цепь используя запятую, в хаосе, рубка не помещая специфическую стоимость используя пространства, adicionalmente trim он удаляет пространства в начале и в конце цепи

posicion_inicial = posicion_inicial + 5 # aГ±aden 5 характеров, так как у цвета есть 5, в случае когда один хочет включить - добавить больше

cadena2 = cadena_color [posicion_inicial:] # он возвращает цепь с начального положения, вычисленного до конца.

или

cadena2 = cadena_color.replace ("цвет -", "")

0
ответ дан 24.11.2019, 13:51
  • 1
    Вопрос шел на регулярных выражениях, и ты не использовал ни одной в ответе. –  ChemaCortes 12.07.2016, 02:34
  • 2
    Спасибо за предложение альтернативного ответа, но было необходимо использовать регулярные выражения, в любом случае за него благодарен. –  Elvis Saavedra 13.07.2016, 02:56