Найти любой спецсимвол в строке

1. anuar_medeup 3 10.12.18 13:17 Сейчас в теме
Приветствую, помогите найти любой спец символ в строке и разбить слова. Т.е строка - Надо$Разбить2На/Массив) - получилось типа - "Надо Разбить На Массив". Юзал RegExp = Новый COMОбъект("VBScript.RegExp"); но патерн не могу подобрать правильный
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. independ 1520 10.12.18 13:21 Сейчас в теме
(1)
СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>) 
Параметры:

<Строка> (обязательный)

Тип: Строка. 
Разделяемая строка. 

<Разделитель> (обязательный)

Тип: Строка. 
Строка символов, каждый из которых является индивидуальным разделителем. 
<ВключатьПустые> (необязательный)

Тип: Булево. 
Показать

Нужно только заполнить разделитель всеми нужными символами
3. anuar_medeup 3 10.12.18 13:32 Сейчас в теме
(2) да спец символов очень много и перечислять их не вариант
4. Cooler 22 10.12.18 13:35 Сейчас в теме
(3)
спец символов очень много
А что не является спецсимволами? Латиница - спецсимволы или нет? Пробел - спецсимвол или его надо оставить в строке?
перечислять их не вариант
Начните с точной постановки задачи - п.1 А то, я смотрю, у вас и цифры - спецсиволы.
5. Boneman 298 10.12.18 14:01 Сейчас в теме
(3) ну если говорить языком 1С, то спец символов всего 6 штук.
Символы (Chars)
Значения

ВК (CR)
ВТаб (VTab)
НПП (NBSp)
ПС (LF)
ПФ (FF)
Таб (Tab)

Описание:

Определяет набор специальных символов. Значения этого набора имеют тип Строка.

Доступность: 

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). 
Показать
6. YannikAlx 43 10.12.18 15:18 Сейчас в теме
(3) Это самый ваш вариант - потому как никто кроме вас не знает ЧТО такое спецсимвол и вы можете туда строкой прописать абсолютно все
Разделитель="%;*?%№123456789" ;
И тп и тд
12. kasper076 105 12.12.18 16:42 Сейчас в теме
(3) А их и не требуется перечислять. В (1) правильное направление указано. Вот тут есть решение.
10. spacecraft 10.12.18 16:27 Сейчас в теме
(1) вот пример с RegExp:
Функция РазложитьСтрокуВМассив(Строка)
	RegExp = Новый COMОбъект("VBScript.RegExp");
	RegExp.Global = Истина;
	RegExp.IgnoreCase = Ложь;
	RegExp.Pattern = "[a-zA-Zа-яА-ЯёЁ]+";
	Matches = RegExp.Execute (Строка);
	
	Массив = Новый Массив;
	
	Для Сч = 0 По Matches.Count - 1 Цикл
		Массив.Добавить(Matches.Item(Сч).Value);
	КонецЦикла;
	
	RegExp = Неопределено;
	
	Возврат Массив;
КонецФункции
Показать

Или можно игнорировать регистр, то:
RegExp.IgnoreCase = Истина;
RegExp.Pattern = "[a-zа-яё]+";
7. anuar_medeup 3 10.12.18 15:20 Сейчас в теме
ну ок, давайте так все что не буква считается спецсимвол
8. herfis 499 10.12.18 15:42 Сейчас в теме
(7) Буква любого алфавита?
Тогда проще отталкиваться от обратного - определиться со списком спецсимволов. Они, кажись, все в универсальном наборе символов находятся, в отличие от национальных кодировок.
9. herfis 499 10.12.18 16:20 Сейчас в теме
(7) Хотя не, нифига. В национальных таблицах тоже хватает фигни, которую можно назвать спец-символами...
Короче, вот тебе таблица символов - определяйся с нужными тебе диапазонами.
То есть просто обходишь строку посимвольно и смотришь куда относится код символа. Если ограничиться базовой латиницей и кириллицей, то достаточно проверить на вхождение кода символа в три диапазона, чтобы признать символ буквой или не буквой.
11. Туки Туки 51 11.12.18 05:37 Сейчас в теме
(7) Может тогда просто задать разрешенный список символов, в котором будут только буквы кирилицы и латиницы. Если символ этому списку не принадлежит, то считать его специальным и дальше использовать функцию СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот