TextWrangler найти / заменить на

У меня есть длинные списки данных о местоположении, которые в формате XML.

<location><city>London</city><name>Zoo</name><latitude>...</location>

К сожалению XML поврежден, и я должен заменить / исправить много
недопустимые случаи закрытия XML-тегов. Пример, здесь </name>должен быть заменен на </city>:

<location><city>London</name><latitude>...</location>

Используя TextWrangler найти + заменить я могу искать:<city>[A-Za-z]*</name>
Эта инструкция выполняет поиск и находит все недопустимые строки. Пока все хорошо.

Теперь я хочу заменить их автоматически (заменить все). Обычно в регулярных выражениях это делается путем определения: <city>%1</city>но это не работает. Он перезаписывает найденный текст, не интерпретируя результат поиска и не вставляя значение в %1тег.

1 ответ

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

    You need to capture the in-between characters using capturing group, so that you can reference the captured chars in the replacement part by specifying it's index number like %1 or \1 or $1

    <city>([A-Za-z]*)</name>
    

    или

    You need to capture the in-between characters using capturing group, so that you can reference the captured chars in the replacement part by specifying it's index number like %1 or \1 or $1

    <city>([A-Za-z]*)</name>
    

    <city>([A-Za-z]*)</name>