Ответ: GREP. Как получить найденную подстроку (выражение) в виде строки?
И небольшие поправки для поиска найденных элементов-подстрок (функция целиком):
где txt - текст, к которому применили changeGrep() с разметкой символами ~h, num - порядковый номер размеченного элемента.
А вообще, хотелось бы найти более подходящий маркер для разметки. Обязательное условие - нулевая ширина. Ну и максимальная нейтральность по отношению к форматированию текста.
При применении стиля, где кроме кегля меняется шрифт и тд, этот номер не проходит. Да и смысл в том, чтобы выделять то, что внутри обрамления, его не захватывая. Пока заменил non-joiner на End Nested Style Here (~h) - в тексте вложенные стили не используются - вроде все работает, как надо (тьфу-тьфу-тьфу).Меняем кегль у символа и маркера одновременно — всё нормально.
И небольшие поправки для поиска найденных элементов-подстрок (функция целиком):
Код:
function getGrepElement(txt, num){
ClearFindChangeGrepPreferences();
app.findGrepPreferences.findWhat = "(?<=~h)[\\s\\S]*?(?=~h)";
var rez=txt.findGrep();
if (rez.length>num*2-2) return rez[num*2-2]
else return null
}
А вообще, хотелось бы найти более подходящий маркер для разметки. Обязательное условие - нулевая ширина. Ну и максимальная нейтральность по отношению к форматированию текста.