Что нового

[RegExp] StringReplace. Замена строк содержащих пробелы.

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
:wall_brake:

Код:
$Message = "Я ямя я"

$Message = StringReplace($Message, "я ", "ты ")
$Message = StringReplace($Message, " я", " ты")
$Message = StringReplace($Message, " я ", " ты ")

MsgBox(64,"",$Message)


Выдает мне
Код:
ты тымты ты

Как сделать так, чтобы он выдавал мне "ты ямя ты"?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [RegExp] Замена символов на нужные

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[RegExp] Замена символов на нужные" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
как вариант

Код:
#Include <Array.au3>

$Message = "Я ямя я"

$aMessage = StringSplit($Message, " ",2)
For $i = 0 To UBound($aMessage)-1
	If $aMessage[$i] = "я" Then $aMessage[$i] = "ты"
Next
$resMessage = _ArrayToString($aMessage," ")

MsgBox(64,"",$resMessage)
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
C2H5OH
Оо, спасибо большое :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
$Message = "Я ямя я"

$Message = StringRegExpReplace($Message, "(^| )[яЯ]( |$)", "$1ты$2")
MsgBox(64, "", $Message)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
У меня вот так получилось

Код:
$Message = "Я ямя я, сяма он я"

$Pattern = "([^а-ёЁ-Я]|\s)я|Я([^а-ёЁ-Я]|\z)"

$Result = StringRegExpReplace($Message, $Pattern, "${1}ты${2}")

MsgBox(64,"",$Result)


Не понимаю почему работает правильно...
Должен был бы работать вот такой
Код:
$Pattern = "([^а-ёЁ-Я]|\s)[яЯ]([^а-ёЁ-Я]|\z)"

Но такой не дружить с буквой 'Я' в начале строки.


Добавлено:
Сообщение автоматически объединено:

О, вот так как и должно быть
Код:
$Pattern ="(^|[^а-ёЁ-Я])[яЯ]([^а-ёЁ-Я]|$)"

:smile:
 
Автор
_Lexa98_

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
C2H5OH
CreatoR
Как все сложно, то. Спасибо за варианты :smile:
 
Верх