У меня есть файл, полученный путем извлечения значений из диалога Microsoft Lync с тегами форматирования RTF. Пример файла будет таким:
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 >Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl;\red0\green0\blue0 ;} {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 Крейг...\embo0 \embo пожалуйста\embo0 \embo закрыть\embo0 \embo >out\embo0 \embo of\embo0 \embo your\embo0 \embo old\embo0 \embo client\embo0 \embo >и\embo0 \embo повторно открыть\embo0\f1\par {*\lyncflags rtf=1}}
Используя сценарии Lua, я пытаюсь удалить теги RTF и просто вытащить текст разговора. Итак, результат моей функции должен быть:
Крейг... пожалуйста, закройте свой старый клиент и снова откройте
Я пытался использовать string.gsub с регулярным выражением, чтобы сопоставить шаблоны и заменить их пустым пространством, чтобы оставить только текст, но это не работает. Вот код, который у меня есть для string.gsub:
result = string.gsub(s, "\{\*?\\[^{}]+}|[{}]|\\\n?[A-Za-z]+\n?(?:-?\d+)?[ ]?", " ")
Любые предложения будут ценны!
Дополнительный:
[email protected] @ 2013-01-18 17:48:03Z (КОМУ: [email protected])
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl;\red0\green0\blue0; } {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 работает\embo0 \embo для\embo0 \embo me..\embo0 \embo как\ embo0 \embo about\embo0 \embo embedding\embo0 \embo картинки?\embo0\f1\par {*\lyncflags rtf=1}}
[email protected] @ 18.01.2013 17:48:57Z (КОМУ: [email protected])
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl;\red0\green0\blue0; } {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 I\embo0 \embo см.\embo0 \embo it\embo0\f1\par {* \lyncflags rtf=1}}
[email protected] @ 2013-01-18 17:49:27Z (КОМУ: [email protected])
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl;\red0\green0\blue0; } {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 давайте\embo0 \embo try\embo0 \embo a\embo0 \embo встреча.\embo0 \f1\par {*\lyncflags rtf=1}}