Найдите символ и новую строку и сохраните их в предыдущей строке В VBA - PullRequest
0 голосов
/ 12 марта 2020

Предположим, у нас есть условие, подобное приведенному ниже:

"A","B","C","D", n
n
 E n
n
 F n
n
  n
n
 G n
n

Мы хотим заменить все n, которые имеют пробел перед ними, и новую строку после них на ""

Ожидается :

"A","B","C","D", EFG

Я использую шаблон ниже, чтобы найти, но он не может найти "n" в файле .txt.

Ввод

"A","B","C","D", n
n

Используемый код

   With RegEx
      .Pattern = "(^|\s)n[\n]"
      .Global = True
      .IgnoreCase = False
      .MultiLine = True
    End With

Debug.Print (RegEx.Test(strLine(LineIndex))) 'Output - False

1 Ответ

1 голос
/ 12 марта 2020

Вы можете использовать

(?:^|[^\S\n]*)n(?:[^\S\n]*\n\s*|$)

См. Демонстрационную версию regex

Обязательно используйте .MultiLine = False.

Детали шаблона

  • (?:^|[^\S\n]*) - либо начало строки, либо любые 0 или более символов, отличных от пробела и новой строки
  • n - n char
  • (?:[^\S\n]*\n\s*|$) - либо
    • [^\S\n]*\n\s* - 0 или более пробелов, кроме новой строки, затем новой строки и затем 0+ пробелов
    • | - или
    • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...