rex-v8. ВК для работы с регэкспами.

Незарегистрированные пользователи могут оставлять свои вопросы здесь.
tormozit
Сообщения: 190
Зарегистрирован: 13 фев 2012, 21:15

Re: rex-v8. ВК для работы с регэкспами.

Сообщение tormozit »

Код: Выделить всё

аа = Новый ("V8RegEx");
аа.шаблон = "node6774 (?:([_ЁА-Яёа-яA-Za-z\d]+)|\(([_ЁА-Яёа-яA-Za-z\d]+)\))([^&_ЁА-Яёа-яA-Za-z\d]|^|$)";
Результат = аа.Execute("");

Такой код возвращает Неопределено. Почему?
tormozit
Сообщения: 190
Зарегистрирован: 13 фев 2012, 21:15

Re: rex-v8. ВК для работы с регэкспами.

Сообщение tormozit »

аа = Новый ("V8RegEx");
аа.шаблон = "\d";
Результат = аа.Execute("");

Тоже возвращает Неопределено.
Аватара пользователя
orefkov
Администратор
Сообщения: 2052
Зарегистрирован: 24 авг 2011, 15:04

Re: rex-v8. ВК для работы с регэкспами.

Сообщение orefkov »

А надо matches с 0 элементами?
tormozit
Сообщения: 190
Зарегистрирован: 13 фев 2012, 21:15

Re: rex-v8. ВК для работы с регэкспами.

Сообщение tormozit »

аа = Новый ("V8RegEx");
аа.шаблон = "\d";
Результат = аа.Execute("2");
бб = ТипЗнч(Результат);

Такой код вызывает аварийное завершение приложения при вычислении типа от Результат. Отладчик показывает Тип = "RegExMatches", что приятно.
Тип не определен 'f0cd1c9e-f075-49c7-97ef-332224575e6c'
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось tormozit 15 апр 2013, 13:17, всего редактировалось 3 раза.
tormozit
Сообщения: 190
Зарегистрирован: 13 фев 2012, 21:15

Re: rex-v8. ВК для работы с регэкспами.

Сообщение tormozit »

orefkov писал(а):А надо matches с 0 элементами?

Для совместимости и унификации надо конечно.
Аватара пользователя
orefkov
Администратор
Сообщения: 2052
Зарегистрирован: 24 авг 2011, 15:04

Re: rex-v8. ВК для работы с регэкспами.

Сообщение orefkov »

Проверь эту.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
tormozit
Сообщения: 190
Зарегистрирован: 13 фев 2012, 21:15

Re: rex-v8. ВК для работы с регэкспами.

Сообщение tormozit »

Спасибо. Теперь не падает. Теперь возвращает пустой RegExMatches вместо Неопределено.
Однако есть еще ряд багов.
Метод Replace выдает на выходе строку, в которой вставляется левая строка в самом начале "(?i)". Позже посмотрю подробнее.
Аватара пользователя
orefkov
Администратор
Сообщения: 2052
Зарегистрирован: 24 авг 2011, 15:04

Re: rex-v8. ВК для работы с регэкспами.

Сообщение orefkov »

Понял. Исправлю, не в ту строку вставлял флаг ignorecase.
Magister
Сообщения: 343
Зарегистрирован: 04 июн 2012, 09:28

Re: rex-v8. ВК для работы с регэкспами.

Сообщение Magister »

orefkov писал(а):
Magister писал(а):Открой секрет, как из ВК вернуть объект? :)

Из native - никак вроде бы.
Из COM - возвращать IDispatch, обернутый в VARIANT.
Я точно не помню, реализацию в ВК уже давно не делал.

Это я знаю.
Я про ВК regex-v8, она ведь native. А в документации написано:
Метод Execute / Выполнить
Находит в исходной строке совпадения с регулярным выражением.
Синтаксис:
результат = объект.Execute(ПроверяемыйТекст);
Параметры:
ПроверяемыйТекст. Строка. Текст для проверки.
Возвращает: Объект RegExMatches.

Собственно вопрос - как ты возвращаешь Объект RegExMatches?
В реальності все не так, як насправді
Аватара пользователя
orefkov
Администратор
Сообщения: 2052
Зарегистрирован: 24 авг 2011, 15:04

Re: rex-v8. ВК для работы с регэкспами.

Сообщение orefkov »

Дело в том, что объект V8RegEx - выполнен НЕ по технологии Native ВК.
ВК используется только в части загрузки в процесс 1С.
Дальше я уже дергаю методы движка 1С, регистрирую в системе типов 1С свой тип, и 1С работает с моим объектом - как со своими "родными" объектами.
То есть я расширяю объектную модель самой 1С.
А я, соответственно, имею доступ ко всем возможностям 1С, в том числе и возвращать объекты.
В 7.7 по этой технологии работали rainbow, 1C++, formex и прочие.
Там всего-то надо несколько интерфейсов реализовать.
Попозжа исходники открою.
Ответить