Там есть два разных паттерна.Первый шаблон msgid "a string"
, по-видимому, указывает, что суммарные данные, следующие за msgid
, представляют собой шаблон из одной строки.Второй шаблон `` msgid "" `указывает, что данные следуют в несколько строк.
Поскольку это два разных шаблона, и вы будете связывать себя узлами, пытаясь сопоставить их всех в одном регулярном выражении.(Если вы не используете Perl или что-то с некоторой программной логикой в дополнение к RegEx ...) Вы сказали, что хотите использовать Text Wrangler, поэтому я ограничу свои комментарии тем, что работает в этом.
Я думаю, что вам нужно будет сделать два цикла поиска / замены с двумя сохраненными шаблонами, чтобы сделать это легко в Text Wrangler (TW).В TW вы можете использовать флаг (?sm)
в начале вашего паттерна, чтобы .*
паттерны соответствовали окончанию линии.TW сохраняет предыдущие совпадения Grep, так что это довольно легко, когда вы получите два работающих шаблона поиска / замены.
Таким образом, шаблон из одной линии можно сопоставить с шаблоном msgid "([^"]*)"
, который у вас есть.Второй шаблон можно сопоставить в BB Edit или TW с (?sm)msgid ""[^"]*(.*)msgstr ""
Вы можете написать регулярное выражение с изменением и именованными захватами, чтобы соответствовать двум шаблонам и заменить за один раз, но это займет намного меньшевремя написать что-нибудь быстрое на Perl ...