получение подстроки с не оставленным регулярным выражением

#regex #parsing #vb6

#регулярное выражение #синтаксический анализ #vb6

Вопрос:

У меня есть текст, подобный этому:

 a = CreateObject("1-SI")
foo bar 'blah blah CreateObject("2-No")
'CreateObject("3-No")
  

с помощью регулярного выражения я хочу выбрать все CreateObject("...") подстроки, у которых нет символа ‘ слева

Как я могу это сделать?

Ответ №1:

Вы можете сделать это следующим образом (пример в RegExr)

 ^(?:[^']*?)(CreateObject(".*?"))
  

Не уверен в регулярном выражении VB6s — но это не требует предварительного просмотра.

Первая группа захвата — это CreateObject(..) часть. Вам нужно будет использовать многострочный режим (если это возможно в VB6).

Ответ №2:

Почему бы вам просто не попробовать [^']*CreateObject(...) ?

Другое решение было бы в отрицательных результатах поиска. Обратите внимание, что этот тип конструкции поддерживается не всеми языками программирования, не говоря уже о механизмах регулярных выражений в текстовых редакторах.