Чтение файла сетки растра в @grid
, содержащих произвольные числа, какПоследовательная регулярное выражение замены отделенных значения
82 8 98 98 42 12 3342 321 34 34 09434 9232
(и еще многие из этих строк).
Здесь я хотел бы заменить некоторые цифры, например 34 с помощью 42. Но только отдельные, разделенные номера! Например. Я не хочу, чтобы заменить 34 в 3342.
Так что для чисел $ а (поиск, например, 34) и $ B (заменить, например, 42), мой подход
s/(^|\s)$a(\s|$)/$1$b$2/g for @grid;
Но это только заменяет каждую секунду последовательных вхождений (например, 34 34 34 34
=>42 34 42 34
), поскольку суффикс \s
не принимается во внимание как префикс следующего шаблона.
Есть ли какое-либо решение этой проблемы, кроме как поставить две из этих команд назад-назад (что медленно для больших массивов)?
Довольно элегантное решение, но '/ e', похоже, имеет низкую производительность. – Martin