Возможности поиска и замены регулярных выражений для добавления тегов и к каждой строке:

#regex #ide #editor #replace

#регулярное выражение #ide #редактор #заменить

Вопрос:

Мне было интересно, какие варианты добавления тегов к каждой строке известны людям.

Допустим, у меня есть 100 элементов, которые мне нужно поместить в строковый массив

 <resources>
    <string-array>
    item001
    item002
    item003
        ...
    </string-array>
</resources>
  

Что мне нужно, так это каким-то образом обернуть каждую строку или каждую строку с элементами в ней, например:

 <resources>
    <string-array>
    <item>item001</item>
    <item>item002</item>
    <item>item003</item>
        ...
    </string-array>
</resources>
  

Я был бы признателен за решение, достижимое на вашем обычном компьютере Linux. Пожалуйста, никаких windows / osx. Спасибо!

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

1. К вашему сведению, я использую Eclipse для разработки Android.

Ответ №1:

как вы и хотели, решение awk под Linux

 awk '!/<.*>/ amp;amp; $0{gsub(/^[ t] /,"",$0);$0="<item>"$0"</item>"}1' yourXml
  

протестируйте свой сниппет:

 kent$  echo "<resources>
    <string-array>
    item001
    item002
    item003
        ...
    </string-array>
</resources>
"|awk '!/<.*>/ amp;amp; $0{gsub(/^[ t] /,"",$0);$0="<item>"$0"</item>"}1'
  

вывод

 <resources>
    <string-array>
<item>item001</item>
<item>item002</item>
<item>item003</item>
<item>...</item>
    </string-array>
</resources>
  

Ответ №2:

Установите флажок регулярных выражений в диалоговом окне Eclipse «Найти и заменить», а затем замените

 (^s*)([^<rn] $)
  

с

 1<item>2<item>
  

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

1. Хорошо, это полезно знать. Спасибо, но я, возможно, ввел в заблуждение, приведя пример item001, 002, 003 . На самом деле, каждая строка содержит случайный текст … никоим образом не последовательный. Есть ли способ использовать регулярное выражение для каждой строки?