как заменить повторяющиеся фразы только одним - PullRequest
0 голосов
/ 10 января 2019

У меня есть следующая строка

PC Model 123, PC Model 456, PC Model XYZ, PC Model A156

Я хотел бы свернуть строку в

PC Model 123/456/XYZ/A156

Как использовать регулярные выражения для выполнения строковой операции?

Я могу определить повторяющуюся фразу «Модель ПК», но не могу удалить лишнюю и просто оставить первую.

1 Ответ

0 голосов
/ 10 января 2019

Работает ли у вас следующее (в Python)?

str1 = "PC Model 123, PC Model 456, PC Model XYZ, PC Model A156"
str2 = re.sub(r', PC Model\s+', r'/', str1)

выход

 PC Model 123/456/XYZ/A156

[Изменить] Я могу придумать способ, но требует многократного повторения выражения.

str1 = "NB Model 555, PC Model 123, PC Model 456, PC Model XYZ, PC Model A156, PC Model 999, NEW Model FOO"
str2 = re.sub(r'(\S+ Model) (\S+),\s+\1 (\S+)', r'\1 \2/\3', str1)
str2 = re.sub(r'(\S+ Model) (\S+),\s+\1 (\S+)', r'\1 \2/\3', str2)

Выход:

B Model 555, PC Model 123/456/XYZ/A156, PC Model 999, NEW Model FOO

Она объединяет модели попарно, поэтому вам нужно запустить выражение несколько раз. Обратите внимание, что одна и та же модель должна быть последовательной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...