Шаблон регулярного выражения в VBScript для соответствия текста с несколькими строками - PullRequest
1 голос
/ 21 июня 2019

У меня длинная строка со Слно. в этом. Я хочу отделить предложение от строки с помощью Slno.

Образец текста:

1. Able to click new button and proceed to ONB-002 dialogue.
2. - Partner connection name **(text field empty)(MANDATORY)**
- GS1 company prefix  **(text field empty)(MANDATORY)**

Я попытался использовать регулярное выражение vbscript для сопоставления с шаблоном. но он соответствует только первой строке строки (1. текст), а не второй.

^\d+\.\s(-?).*[\r\n].[\r\n\*+]*.*|^\d+\.\s(-?).*[\r\n]

А пока раскалываете строку, для Slno. 2 Я тоже хочу получить следующее предложение. которые испытывают трудности с получением.

Пожалуйста, помогите мне.

Set regex = CreateObject("VBScript.RegExp")
 With regex
   .Pattern = "^\d+\.\s(-?).*[\r\n].[\r\n\*+]*.*|^\d+\.\s(-?).*[\r\n]"
   .Global = True
 End With
Set matches = regex.Execute(txt)

Мои ожидания - поиск шаблона регулярного выражения, соответствующего

1. Able to click new button and proceed to ONB-002 dialogue.

& 

2. - Partner connection name **(text field empty)(MANDATORY)**
- GS1 company prefix  **(text field empty)(MANDATORY)**

отдельным предложением или группой.

1 Ответ

0 голосов
/ 21 июня 2019

Если я не ошибаюсь, чтобы получить 2 отдельные части, включая строку, после того, как вы могли бы использовать:

^\d+\..*(?:\r?\n(?!\d+\.).*)*

Объяснение

  • ^ Начало строки
  • \d+\. Совпадение 1+ цифр, за которыми следует точка
  • .* Соответствует любому символу, кроме новой строки 0+ раз
  • (?: Группа без захвата
    • \r?\n(?!\d+\.).* Подберите символ новой строки и используйте отрицательный прогноз, чтобы активировать то, что справа не является 1+ цифрами, за которыми следует точка
  • )* Закрыть группу без захвата и повторить 0+ раз

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...