Что нового

Паттерн поиска пробелов между буквами.

Rivald

Новичок
Сообщения
61
Репутация
1
С паттернами у меня плохо, поэтому составить рабочий не получилось, вот мой вариант:
Код:
StringRegExpReplace($text, '[a-zA-ZА-Яа-я-ё]' & ' ' & '[a-zA-ZА-Яа-я-ё]', '')

Подскажите как написать его)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Rivald,
А что Вы в итоге хотите получить? Может, проще использовать
Код:
StringStripWS()
 
Автор
R

Rivald

Новичок
Сообщения
61
Репутация
1
Мне нужно чтобы стирались только пробелы, которые находятся между буквами.
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Rivald

Код:
$Text = 'Т е с т t e s t'
$Pattern = '\s'
$Rez = StringRegExpReplace($Text, $Pattern, '')
ConsoleWrite($Rez&@LF)

;#######################

$Text = 'Т е с т t e s t'
$Pattern = '\s'
$aRez = StringRegExp($Text, $Pattern, 3)
ConsoleWrite('Всего найдено '&UBound($aRez)&' пробелов'&@LF)

;#######################

$Text = 'Т е с т t e s t'
ConsoleWrite(StringStripWS($Text, 8)&@LF)
 
Автор
R

Rivald

Новичок
Сообщения
61
Репутация
1
Вот например, нужно стереть пробелы Т е с т t e s t, чтобы было так Тест test.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Rivald [?]
Мне нужно чтобы стирались только пробелы, которые находятся между буквами.
Так?
Код:
$sString = 'f d x ф ы ё' & @TAB & 'Ё я, цю .' & @CRLF & 'a s, o. (0, 3 ), f d x ф ы ё Ё я, цю .'

$sString = StringRegExpReplace($sString, '(?s)(?<=[A-Za-zЁёА-Яа-я])\h+(?=[A-Za-zЁёА-Яа-я])', '')
ConsoleWrite($sString & @LF)

Поменял по примеру AZJIO (см. ниже)
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Код:
$sText = 'Т е с т t e s t Т е с т t e s t Т е с т t e s t'
$sText=StringRegExpReplace($sText, '(?i)(?<=[A-Z]) (?=[A-Z])|(?<=[А-яЁё]) (?=[А-яЁё])', '')
MsgBox(0, 'Сообщение', $sText)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Встроенный в autoit PCRE какой - то урезанный и не до конца поддерживает кирилицу да и вообще видимо весь юникод. Ведь было бы достаточно применить такой паттерн \b\s\b


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

Или такой расширенный (?<=\b\w)\b\s\b(?=\w\b)
 
Автор
R

Rivald

Новичок
Сообщения
61
Репутация
1
Последний пример работает)


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

Только вот между словами вставляет по 3 пробела.
 
Верх