Что вы можете сделать, это сначала сопоставить шаблон с 1+ символами, /
, 1+ символами между двойными кавычками.Тогда, так как шаблон соответствует, вы можете разделить строку и проверить, имеет ли элемент длину строки 3. 3. 1002 *
Если это так, используйте map и замените /
пустой строкой и восстановите строку.
Соответствует полному шаблону:
"\w+\/\w+(?: \w+\/\w+)*"
Regex demo | Python demo
Например:
import re
regex = r"\"\w+\/\w+(?: \w+\/\w+)*\""
test_str = ("\"a/b b/c\"\n"
"\"a/b python/Java\"")
matches = re.findall(regex, test_str, re.MULTILINE)
for match in matches:
res = map(lambda s: s.replace("/", "") if len(s) == 3 else s, match.strip("\"").split())
print('"{0}"'.format(" ".join(res)))
Результат
"ab bc"
"ab python/Java"