Как стать автором
Обновить

Комментарии 6

Если у вас есть проблема, и вы пытаетесь решить её с помощью регулярных выражений, то у вас две проблемы (ц) скрыто в глубине веков.
Мощная вещь, согласен. Но при правильном применении.

НЛО прилетело и опубликовало эту надпись здесь
id=([0-9])+ только плюсик в скобки надо поместить, нет? если речь про ссылку на *число*
А можно здесь задать вопрос? На днях искал способ заменить в VS Code вторую и третью точку в строке запятыми, больше ничего не меняя. То есть, из строки вида
12.34, 5.67. 89, 12.34, 56.789,…
надо сделать
12.34, 5,67, 89, 12.34, 56.789,…
(пробелы и знаки +- возможны в любых местах, количество цифр в числе произвольное). Довольно быстро сообразил, что надо копать регулярные выражения (раньше ими не пользовался), и даже их немного освоил. Но с исходным вопросом так и не разобрался… понял, что быстрее сделать программу. Теперь мучаюсь угрызением совести за изобретение очередного велосипеда :-((

Примерно так: ([^\.]+\.[^\.]+)\.([^\.]+)\.(.*) заменяем на $1,$2,$3


Например входной файл:


$ cat /tmp/test
12.34, 5.67. 89, 12.34, 56.789
121.11,  888.22. -19.34,   +40.789
-1.10,  +8.1. -500.43,   1000.789, 10.1, 50.33, -90.111, 81.300
any symbols bla bla 10.1, 9.900. 300.1

image
После замены:
image


Или же через sed:


$ cat /tmp/test | sed 's/\([^\.]\+\.[^\.]\+\)\.\([^\.]\+\)\.\(.*\)/\1,\2,\3/g'
12.34, 5,67, 89, 12.34, 56.789
121.11,  888,22, -19.34,   +40.789
-1.10,  +8,1, -500.43,   1000.789, 10.1, 50.33, -90.111, 81.300
any symbols bla bla 10.1, 9,900, 300.1
Зарегистрируйтесь на Хабре , чтобы оставить комментарий