Доброго времени суток. Имеется подобное регулярное выражение
("originalText":")(<i>)*([A-Za-z0-9\(\) ',.!?-]+)(</i>)*(","text":")(<)*([А-Яа-я0-9A-Za-z\(\) ,.!?-]+)(</i>\.|</i>)*",
Которое я использую для замены в файле на
$1$2$3$4$5$2$7$4",
Файл в одну строку и 10 259 006 символов
Это файл (словарь) перевода игры, который неграмотно перевели машинным переводом. В результате в русском тексте сломались или потерялись теги
<i> </i>
, этим регулярным выражением я могу исправить большинство (но не все) ошибки. Но проблема в том что это регулярное выражение делает пустую работу, а именно находит "здоровый" текст и заменяет его на него же. Меняет
"originalText":"English text.","text":"Русский текст.",
на
"originalText":"English text.","text":"Русский текст.",
Можно как то это исправить?
А именно, как исключить из поиска текст, в котором между
"originalText":"
и
","text":"
нет
<i>
или
</i>
Поясню на примерах
"originalText":"English text.","text":"Русский текст.", - Этот текст должно пропуска
"originalText":"<i>English text.","text":"Русский текст.", - Этот текст должно заменять
"originalText":"English text.</i>","text":"Русский текст.", - Этот текст должно заменять
"originalText":"<i>English text.</i>","text":"Русский текст.", - Этот текст должно заменять
Моих знаний не хватает что бы написать такое регулярное выражение. Моих знаний не хватает даже что бы как то грамотно составить поисковый запрос что бы найти ответ в гугле. И тут я грамотно заголовок не смог составить...