Нужно регулярное выражение с использованием Java - PullRequest
0 голосов
/ 10 ноября 2010
    **************************
    * Ending Case(test) *
    **************************
SET: Global["test_status"]=FAILED
=========================
= Ending Test (test) =
=========================

Регулярное выражение, которое вернет статус, т. Е. ОТКАЗ или ПРОЙДЕН из вышеприведенного текста.

В настоящее время я использую

.*SET: Global\\W"test_status"\\W=(.*)

Но возвращается

FAILED
=========================
= Ending Test (test) =
=========================

Заранее спасибо

Ответы [ 4 ]

1 голос
/ 10 ноября 2010

Попробуйте это:

^SET: Global\["test_status"\]=(.*)$

Представлено в виде строки Java:

"^SET: Global\\[\"test_status\"\\]=(.*)$"

РЕДАКТИРОВАТЬ: Этот шаблон должен использоваться с Pattern.MULTILINE, ноне Pattern.DOTALL.

0 голосов
/ 11 ноября 2010

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

"(?m)=(\\w+)\\b"

в качестве аргумента Pattern.compile ()

Вам не нужно много контекста в этом примере. Шаблон представляет собой многострочный флаг (? M) , за которым следует символ = в качестве контекста и группа захвата (\\ w +) с разделителями по маркеру границы слова \\ b

Используйте метод find () для Matcher и извлеките группу 1.

0 голосов
/ 11 ноября 2010

Наконец-то это сработало

.*SET: Global\\[\"test_status\"\\]=(.*)\\r\\n=.*\\r\\n= Ending .*
0 голосов
/ 10 ноября 2010

Одна проблема с использованием. * Это то, что он не останавливается в конце строки. Попробуйте что-то вроде этого:

^SET: Global\["test_status"\]=(.*)$ 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...