Я столкнулся с проблемой использования regex.replace со словами с акцентом — я использую регулярное выражение replace, потому что мне нужно заменить полные, а не частичные строки (см. «grund» в списке).
Но AHK, кажется, игнорирует символы с диакритическими знаками в начале и конце слов (в середине все в порядке). Кто-нибудь сталкивался с этой проблемой раньше?
Я придумал следующее «исправление», добавив подчеркивание перед начальными акцентированными символами после после завершающих акцентированных символов, но это все еще не работает правильно, когда акцент появляется в слове (см. «mémit» и «mèmit»). Может ли кто-нибудь помочь? Я уверен, что есть гораздо более простой способ справиться с акцентами!
Ваше здоровье!
^+f2::
data =
(
testé = WORD1
kragén = WORD2
und = WORD3
gürtel = WORD4
émail = WORD5
élder = WORD7
messé = WORD8
émit = WORD9
èmit = WORD10
testè = WORD11
)
text =
(
testé kragén und gürtel émail nomâtch élder messé émit émit èmiter émita mémit mèmit testé testè grund
)
text := RegExReplace(text,"(\w+é)\W|$","$1_ ")
text := RegExReplace(text,"\W(é\w+)"," _$1")
text := RegExReplace(text,"(\w+è)\W|$","$1_ ")
text := RegExReplace(text,"\W(è\w+)"," _$1")
loop, parse, data, `n, `r
{
stringsplit, term, a_loopfield, =, %a_space%
text := RegExReplace(text, "\b" . term1 . "\b", term2)
}
stringreplace, text, text, _, , all
stringreplace, text, text, _ , , all
msgbox, % text
return