У меня есть массив, который имеет некоторые символы, которые я хочу удалить, и даже думал, что найду решение, мне будет интересно узнать, правильно ли это, потому что я боюсь, если Я использую его с массивом, удалит символ, который мне может понадобиться в будущих массивах.Замените только одну часть строки, используя perl
Вот пример пункт в моем массиве:
$string1='22 | logging monitor informational';
поэтому я стараюсь следующее:
$string1=~ s/\s{6}\|(?=\s{6})//;
Так что мой вывод:
22 logging monitor informational
Есть другой путь, лучший матч "|". Я просто хочу удалить символ канала.
Заранее спасибо
«Правильный путь» - довольно субъективный термин. Вы пытаетесь удалить 6 пробелов, за которыми следует символ канала? Если это так, да, это правильный путь. – TLP
Я хочу удалить только символ трубы. – David
Тогда вы должны использовать утверждение lookbehind '(? <= \ S {6})'. Поскольку у вас есть строка с фиксированной длиной, это нормально. Вы также можете использовать '\ K', чтобы« сохранить »материал слева. – TLP