регулярное выражение, чтобы удалить все после последней запятой в строке - PullRequest
0 голосов
/ 27 мая 2018

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

Пример: some\string,/doesnt-really.metter,5.

Я хотел бы, чтобы регулярное выражение удаляло последнюю запятую и5, поэтому вывод будет: some\string,/doesnt-really.metter

Мне не разрешено использовать какой-либо дополнительный модуль только с регулярным выражением.Итак, какое регулярное выражение я должен использовать?

Другой пример:

string_with,,,,,_no_point,some_string => string_with,,,,,_no_point

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Это регулярное выражение захватывает все до последнего ,.

(.*),[^,]*$
0 голосов
/ 01 июня 2018
perl -n -e 'chomp; s/(.+,)/$1/g; print "$_\n";' inputfile.txt

Просто запустите эту команду прямо на терминале, регулярное выражение просто выделяет весь текст, который идет перед последней запятой).

0 голосов
/ 27 мая 2018

Если за запятой всегда следует одна или несколько цифр, вы можете использовать: s/,\d+$//.В более общем случае используйте s/,[^,]*$// (соответствует запятой, за которой следует ноль или более не запятых символов, за которыми следует конец строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...