Снегопат https://snegopat.ru/forum/ |
|
rex-v8. ВК для работы с регэкспами. https://snegopat.ru/forum/viewtopic.php?f=5&t=444 |
Страница 3 из 8 |
Автор: | tormozit [ 15 апр 2013, 12:57 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Код: аа = Новый ("V8RegEx"); аа.шаблон = "node6774 (?:([_ЁА-Яёа-яA-Za-z\d]+)|\(([_ЁА-Яёа-яA-Za-z\d]+)\))([^&_ЁА-Яёа-яA-Za-z\d]|^|$)"; Результат = аа.Execute(""); Такой код возвращает Неопределено. Почему? |
Автор: | tormozit [ 15 апр 2013, 13:00 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Цитата: аа = Новый ("V8RegEx"); аа.шаблон = "\d"; Результат = аа.Execute(""); Тоже возвращает Неопределено. |
Автор: | orefkov [ 15 апр 2013, 13:03 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
А надо matches с 0 элементами? |
Автор: | tormozit [ 15 апр 2013, 13:05 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Цитата: аа = Новый ("V8RegEx"); аа.шаблон = "\d"; Результат = аа.Execute("2"); бб = ТипЗнч(Результат); Такой код вызывает аварийное завершение приложения при вычислении типа от Результат. Отладчик показывает Тип = "RegExMatches", что приятно. Тип не определен 'f0cd1c9e-f075-49c7-97ef-332224575e6c' |
Автор: | tormozit [ 15 апр 2013, 13:05 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
orefkov писал(а): А надо matches с 0 элементами? Для совместимости и унификации надо конечно. |
Автор: | orefkov [ 15 апр 2013, 13:13 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Проверь эту. |
Автор: | tormozit [ 15 апр 2013, 13:25 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Спасибо. Теперь не падает. Теперь возвращает пустой RegExMatches вместо Неопределено. Однако есть еще ряд багов. Метод Replace выдает на выходе строку, в которой вставляется левая строка в самом начале "(?i)". Позже посмотрю подробнее. |
Автор: | orefkov [ 15 апр 2013, 13:28 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Понял. Исправлю, не в ту строку вставлял флаг ignorecase. |
Автор: | Magister [ 15 апр 2013, 14:24 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
orefkov писал(а): Magister писал(а): Открой секрет, как из ВК вернуть объект? Из native - никак вроде бы. Из COM - возвращать IDispatch, обернутый в VARIANT. Я точно не помню, реализацию в ВК уже давно не делал. Это я знаю. Я про ВК regex-v8, она ведь native. А в документации написано: Цитата: Метод Execute / Выполнить Находит в исходной строке совпадения с регулярным выражением. Синтаксис: результат = объект.Execute(ПроверяемыйТекст); Параметры: ПроверяемыйТекст. Строка. Текст для проверки. Возвращает: Объект RegExMatches. Собственно вопрос - как ты возвращаешь Объект RegExMatches? |
Автор: | orefkov [ 15 апр 2013, 14:35 ] |
Заголовок сообщения: | Re: rex-v8. ВК для работы с регэкспами. |
Дело в том, что объект V8RegEx - выполнен НЕ по технологии Native ВК. ВК используется только в части загрузки в процесс 1С. Дальше я уже дергаю методы движка 1С, регистрирую в системе типов 1С свой тип, и 1С работает с моим объектом - как со своими "родными" объектами. То есть я расширяю объектную модель самой 1С. А я, соответственно, имею доступ ко всем возможностям 1С, в том числе и возвращать объекты. В 7.7 по этой технологии работали rainbow, 1C++, formex и прочие. Там всего-то надо несколько интерфейсов реализовать. Попозжа исходники открою. |
Страница 3 из 8 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |