2014-02-05 3 views
0

Мы все знаем, что каждая реализация регулярных выражений имеет свои особенности. Мне нужно нам объект Microsoft VBVScript RegExp в приложение с помощью COM Automation, но я не мог найти хорошую документацию для него, кроме этого обзора:Есть ли хорошая документация для объекта VBScript Regular Expression (RegExp)?

Microsoft бифов Up VBScript с использованием регулярных выражений
http://msdn.microsoft.com/en-us/library/ms974570.aspx

MSDN также содержит этот раздел для регулярных выражений, но это для JavaScript:

Введение в регулярные выражения (JavaScript)
http://msdn.microsoft.com/en-us/library/6wzad2b2.aspx

Можем ли мы использовать все функции, описанные в этом разделе для объекта VBScript RegExp?

ответ

2

В соответствии с regular-expressions.info большинство элементов регулярного выражения в Javascript применимо к VBScript. Они также имеют довольно полное описание исключений и ограничений регулярных выражений VBScript.

Существует также аккуратный трюк, который вы можете сделать с помощью метода .Replace: adding a function reference для управления возвращаемым значением замены.

+0

Согласно http://www.regular-expressions.info/vbscript.html, «все сказанное о стилевом выражении JavaScript на этом веб-сайте также относится к VBScript». Означает ли это, что мы можем использовать документацию JavaScript, о которой я упоминал, в списке функций, недоступных в RegeExp от VBScript, которые перечислены на сайте regular-expressions.info как полная документация для RegExp VBScript? – TecMan

+0

Как с образцом сопоставив, да. Модификаторы Javascript немного отличаются ('g' и/или' i' в конструкторе) и помните, что вы используете 'vbNewLine',' vbTab' и 'vbCrLf' вместо' \ n \ r \ t', когда используете замените как: 'newLine = re.Замените (oldLine, vbTab) '(<это то, что вы бы использовали, если вы хотите заменить 4 пробела на Tab, например), в то время как вы должны использовать экранированные символы в шаблоне, например' re.Pattern = "\ t" '. – AutomatedChaos

0

Ответ на ваш вопрос «Есть ли хорошая документация для объекта VBScript Regular Expression (RegExp)?» а не ваш второй вопрос.

Это лучшее, что я нашел, и вы могли бы найти его достаточно хорошо:

"Regular Expression (RegExp) Объект"
https://msdn.microsoft.com/en-us/library/yab2dx62(v=vs.84).aspx

"Введение в регулярные выражения (сценариев)"
https://msdn.microsoft.com/en-us/library/6wzad2b2(v=vs.84).aspx

«Введение», примечание, а не ссылка.

Хотя это представление не является частью документации VBScript, я надеюсь, что его

«Тем не менее, регулярные выражения могут быть также более эффективно использовать в VBScript, а также»
https://msdn.microsoft.com/en-us/library/5t8zc0b0(v=vs.84).aspx

можно безопасно принимать означает, что это относится к VBScript.

ОЧЕНЬ БУДЬ ПРЕДУПРЕЖДЕН, что они являются неполными, поскольку я недавно обнаружил это благодаря неприятной ошибке, вызванной простой заменой строки, содержащей последовательность $ &, которая зарезервирована, но не задокументирована как таковая в любом из перечисленных выше, в том числе в место, которое документирует другие сменные зарезервированные последовательности https://msdn.microsoft.com/en-us/library/k9z80300(v=vs.84).aspx.