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

1. anuar_medeup 3 10.12.18 13:17 Сейчас в теме
Приветствую, помогите найти любой спец символ в строке и разбить слова. Т.е строка - Надо$Разбить2На/Массив) - получилось типа - "Надо Разбить На Массив". Юзал RegExp = Новый COMОбъект("VBScript.RegExp"); но патерн не могу подобрать правильный
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. independ 1518 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 101 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 498 10.12.18 15:42 Сейчас в теме
(7) Буква любого алфавита?
Тогда проще отталкиваться от обратного - определиться со списком спецсимволов. Они, кажись, все в универсальном наборе символов находятся, в отличие от национальных кодировок.
9. herfis 498 10.12.18 16:20 Сейчас в теме
(7) Хотя не, нифига. В национальных таблицах тоже хватает фигни, которую можно назвать спец-символами...
Короче, вот тебе таблица символов - определяйся с нужными тебе диапазонами.
То есть просто обходишь строку посимвольно и смотришь куда относится код символа. Если ограничиться базовой латиницей и кириллицей, то достаточно проверить на вхождение кода символа в три диапазона, чтобы признать символ буквой или не буквой.
11. Туки Туки 51 11.12.18 05:37 Сейчас в теме
(7) Может тогда просто задать разрешенный список символов, в котором будут только буквы кирилицы и латиницы. Если символ этому списку не принадлежит, то считать его специальным и дальше использовать функцию СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)