Попытка заменить пробел '' в указанной позиции c в каждой строке файла .txt с помощью регулярных выражений - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть текстовый файл с разделителями табуляции, который я могу импортировать в Excel. Есть одна проблема, когда у меня нет вкладки между 2 наборами данных, которые при импорте должны быть разделены на 2 разных столбца. Я просто хотел бы заменить символ пробела в позиции 40 символом табуляции для каждой строки в файле.

Пример данных:

02/01   02/04   24123069033893031235753 CHESTER LAKE BUENA VIFL $86.16

Я хотел бы:

02/01   02/04   24123069033893031235753     CHESTER LAKE BUENA VIFL $86.16

Я пробовал много разных попыток использовать регулярное выражение для замены в возвышенном тексте, но безуспешно. Я чувствую, что это должно быть простое решение, но я искал переполнение стека в течение 2 часов и пробовал разные решения.

1 Ответ

0 голосов
/ 26 апреля 2020

Вот пример способа, если символ всегда является 40-м символом в строке: используйте регулярное выражение ^(.{39})( ) с заменой $1\t, и он заменит 40-й символ (который должен быть пробелом) на табуляцию .

По сути, регулярное выражение просто захватывает первые 39 символов в первую группу захвата ($ 1), а затем пробел. Затем вы заменяете его первой группой захвата и вкладкой для замены пробела.

https://regex101.com/r/bhORsu/2

Вы также можете избавиться от первой группы захвата, используя вместо этого положительный взгляд, который позволил бы вам точно соответствовать только одному персонажу. Регулярное выражение будет (?<=^(.{39})), а замена будет \t, но я точно не знаю, поддерживает ли возвышенное позитивный взгляд назад.

https://regex101.com/r/bhORsu/4

...