Я хочу отформатировать мой файл, содержащий ключевые слова, отсортированные по алфавиту, что-то вроде этого:
...
national day
national
other
random
random2
...
, и я хочу поставить пробел между ключевыми словами, начинающимися с разных алфавитов (то есть пробел между a и b ии так далее), который будет выглядеть примерно так:
...
national day
national
other
random
random2
...
Я делаю это с помощью регулярного выражения, и я попробовал регулярное выражение \n(.{1,1})(?:.*?)\n(?!\1)
.Это прекрасно работает для большинства случаев, за исключением случаев, когда есть только одно вхождение ключевого слова из одного алфавита, в данном случае other
. Ссылка на регулярное выражение .
Как видно, national
и random2
совпадают, но other
нет, хотя я считаю, что для этого есть все основания.
Используемое регулярное выражение ^(.{1,1})(?:.*?)\n(?!\1)
(первое \n
заменено на ^
), но мне нужна причина, по которой первое регулярное выражение не соответствует other
.Спасибо.