У меня есть файл CSV, который был сгенерирован системой.Проблема в одном из полей, которое раньше было списком элементов.Пример исходного списка приведен ниже ....
The serial number of the desk is 45TYTU
This is the second item in the list
The colour of the apple is green
The ID code is 489RUI
This is the fourth item in the list.
И, к сожалению, система выкладывает код ниже .....
The serial number of the desk is 45TYTUThis is the second item in the listThe colour of the apple is greenThe ID code is 489RUIThis is the fourth item in the list.
Как видите, этоигнорирует разрывы строк и просто объединяет все.Я не могу изменить систему, которая генерирует эти выходные данные, поэтому я пытаюсь найти какое-то выражение для поиска и замены регулярных выражений, которое будет их отделять.
Мой оригинальный вариант - попытатьсяопределить, когда буква верхнего регистра находится в середине слова в нижнем регистре, но, как и в одном из пунктов в примере, когда используется серийный номер, он выбрасывает это.
Кто-нибудь есть какие-либо предложения?Является ли регулярное выражение правильным путем?
--- EDIT ---
Я думаю, что мне нужно упростить вещи для себя, если я проигнорирую тот факт, что строки, оканчивающиеся на серийный номер, будутсломать вещи на данный момент.Мне нужно просто создать выражение, которое вставит разрыв строки, если обнаружит, что заглавная буква используется после строчной
--- EDIT 2 --- Используя пример, заданный fardjad everythingработает для приведенных данных выборки, сильное было ...
(.(?=[A-Z][a-z]))
Теперь, когда я тестирую с большим количеством данных, я вижу появление проблемы, некоторые строки начинаются с цифр, поэтому он видит их как серийные номера,Вы можете увидеть пример этого в http://regexr.com? 2vfi5
Существует только около 10 известных чисел, которые он использует в начале строк, таких как 240 В, 120 В и т. д.
Есть ли способ исключить это?