Пропадают пробелы при переборе переменной (решена)

staskov2009

Новичок
Автор темы
6
2
Уже часа 4 сидел думал над регуляркой. Смысл скрипта, поочередной проверить буквы на предмет кириллицы. Если соответственно буква является русской, он ставит скобки справа и слева. Все работает ок, но один минус, он в какой-то момент проглатывает пробелы. И первоначальная фраза на выходе не имеет пробелов. Гугл мне особо ответа не дал, да и что конкретно гуглить не очень понятно. Я так понял, он пробелы кушает в переменных. Но опять же не понимаю где именно и почему, глаза замылились уже. Может кто подскажет в чем может быть проблема? Ну или может это можно гораздо проще реализовать.

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
F7::
FinalWords:=""
Test:=""
Test2:=""
TranslatedWords = вцфвфцвф dawdaw awdad daw133 3123124 вфвфвфв dadad
MsgBox, Step:0: %TranslatedWords%
RussianLetterPainter:
LetterNumber:=1
Loop,
{
if (A_Index > 80) {
Cycles:=A_Index
Break
}
Test=%Test%`n%TranslatedWords%
Test2=%Test2%`n%FinalWords%
;if RegExMatch(TranslatedWords, "^(\s)(.*)$", PartOfWord) {
; TranslatedWords=%PartOfWord2%
; FinalWords:=FinalWords+" "
; MsgBox, %FinalWords%
; Continue
;}
if RegExMatch(TranslatedWords, "^([А-Яа-я])(.*)", PartOfWord) {
TranslatedWords=%PartOfWord2%
FinalWords=%FinalWords%(%PartOfWord1%)
Continue
}
if RegExMatch(TranslatedWords, "^([^А-Яа-я])(.*)", PartOfWord) {
TranslatedWords=%PartOfWord2%
FinalWords=%FinalWords%%PartOfWord1%
Continue
}
if RegExMatch(TranslatedWords, "(.*)$", PartOfWord) {
FinalWords=%FinalWords%%PartOfWord2%
Cycles:=A_Index
Break
}
}
MsgBox, %Test%
MsgBox, %Test2%
ListOfErrors=`n%FinalWords%
MsgBox, Конец на цикле: %Cycles%`nЛист ошибок:%ListOfErrors%
Return
По итогу сделал довольно топорно. Терпеть не могу регулярки, редко ими пользуюсь.
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
F7::
FinalWords:=""
Test:=""
Test2:=""
TranslatedWords = вцфвфцвф dawdaw awdad daw133 3123124 вфвфвфв dadad
MsgBox, Step:0: %TranslatedWords%
RussianLetterPainter:
LetterNumber:=1
Loop,
{
if (A_Index > 80) {
Cycles:=A_Index
Break
}
Test=%Test%`n%TranslatedWords%
Test2=%Test2%`n%FinalWords%
;if RegExMatch(TranslatedWords, "^(\s)(.*)$", PartOfWord) {
; TranslatedWords=%PartOfWord2%
; FinalWords:=FinalWords+" "
; MsgBox, %FinalWords%
; Continue
;}
if RegExMatch(TranslatedWords, "^([А-Яа-я])\s(.*)", PartOfWord) {
TranslatedWords=%PartOfWord2%
FinalWords:=FinalWords "(" PartOfWord1 ") "
Continue
}
if RegExMatch(TranslatedWords, "^([^А-Яа-я])\s(.*)", PartOfWord) {
TranslatedWords=%PartOfWord2%
FinalWords:=FinalWords PartOfWord1 " "
Continue
}
if RegExMatch(TranslatedWords, "^([А-Яа-я])(.*)", PartOfWord) {
TranslatedWords=%PartOfWord2%
FinalWords=%FinalWords%(%PartOfWord1%)
Continue
}

if RegExMatch(TranslatedWords, "^([^А-Яа-я])(.*)", PartOfWord) {
TranslatedWords=%PartOfWord2%
FinalWords=%FinalWords%%PartOfWord1%
Continue
}

if RegExMatch(TranslatedWords, "(.*)$", PartOfWord) {
FinalWords=%FinalWords%%PartOfWord2%
Cycles:=A_Index
Break
}
}
MsgBox, %Test%
MsgBox, %Test2%
ListOfErrors=`n%FinalWords%
MsgBox, Конец на цикле: %Cycles%`nЛист ошибок:%ListOfErrors%
Return
 
Последнее редактирование: