У меня есть текстовый файл, который содержит несколько предложений.Предложения содержат пробелы (пробелы, символы табуляции, новые строки) для выделения слов, состоящих из букв и / или цифр.Я хочу найти слово «123» или «-123» и вставить точку (.) До начала цифр.Таким образом, все вхождения «123» и «-123» будут преобразованы в «.123» и «-.123».
Я пробовал это со следующим:
$line =~ s/(\s+-*123\s+)/getNewWord($1)/ge
Где $ line содержит строку, прочитанную из файла, а функция getNewWord word поместит точку (.) В соответствующее место в совпавшем слове.
Но это не работает для случаев, когда есть два последовательных "123"как "123 123".Поскольку первое «123» заменяется на «.123», пробел, следующий за словом, уже сопоставлен, а второй «123» не сопоставлен, поскольку механизм регулярных выражений не может сопоставить предыдущее пространство с этим словом.
Может ли кто-нибудь помочь мне с этим?Спасибо!