Я очень близок к ответу, но не могу понять как обработать последний сценарий, не нарушая его.
Так, например, разрешены такие строки:
- ' ca.1830.01.01/ca1833.02.06'
- 'ca.183u-01-01/ca.183X-uu-06'
- ' ca1830.01.uu/ca183u.02.06'
- 'ca.1830/ca183u.02.06'
- 'ca.1830-01/ca183u. 02.06'
Код: Выделить всё
newstr = re.sub(r"([0-9uxUX]+([,.-][0-9uxUX]+([,.-][0-9uxUX]+))?)",r" \1 ",mystr)
'ca. 1830 - 01 /ca 183u.02.06 '
Я прочитал несколько вопросов и примеров как здесь, так и в результатах поиска.
Но мои навыки работы с регулярными выражениями в лучшем случае слабы.
Подробнее здесь: https://stackoverflow.com/questions/784 ... etween-dat