2014-01-14 2 views
0

У меня есть регулярное выражение, как это: ${BUILD_LOG_REGEX,regex="(?=.*?Environment)(?=.*?Total).*$"}Regex Значение для линии, которая соответствует несколько значений

Выход этого Regex как это:

[...truncated 14 lines...] [java] Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0) [...truncated 14 lines...]

Я хочу изменить это регулярное выражение, так что я могу только См этих значений в качестве вывода:

Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0)

Может кто-то помочь, чтобы узнать сотрудничество rrect REGEX для этой LINE из файла журнала?

+0

Что особенного в этой линии? Чем он отличается от других? –

+0

Специально о 2-й строке ... Я хочу удалить дополнительные вещи, находящиеся между этим TAG [] ... Я просто хочу напечатать фактическую строку, а затем напечатать все значения Junk, такие как [... усеченный 14 строки ...] [java] .. Я не хочу, чтобы это печаталось. – user886614

ответ

2

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

E.*?\)

Ссылка: Regex101.com Example

0

EDIT:Эта answer задает решение , поскольку вопрос был первоначально помечен как вопрос Java. С тех пор этот тег удален.

Если вы хотите просто удалить любой текст, содержащийся в квадратных скобках, простой вызов приведенного ниже кода даст результат, который вы ищете.

String source = "[...truncated 14 lines...] [java] Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0) [...truncated 14 lines...]"; 
String extract = source.replaceAll("\\[.*?\\]", "").trim(); 

Результатов в extract держащих значения:

"Environment: XYZ Total(Pass:1 Fail:0 Incomplete:0 Delayed:0 Manual Verification:0)" 

код Java выше будет заменить все вхождения строки внутри квадратных скобок с пустой строкой (по существу, удаляя их), а затем обрежьте ненужные пробельные результат.

Regex:

\[.*?\], где .*, с его окружающими квадратными скобками, является лениво (не жадностью) совпадают.

Regular expression visualization

+0

Я не хочу использовать JAVA API здесь ... Я хочу один REGEX, который может сделать это для меня ... В настоящее время у меня есть этот REGEX --- "(? =. *? Environment) (? =. * «Всего». * $ », Который печатает мне эту строку ..... [... усечен 14 строк ...] [java] Окружающая среда: XYZ Total (Pass: 1 Fail: 0 Неполнота: 0 Задержка: 0 Руководство Проверка: 0) [... усечено 14 строк ...] ... И я хочу изменить мое регулярное выражение, чтобы я мог видеть вывод, который вы использовали для печати с помощью оператора Replace. – user886614

+0

Если вы не хотите использовать Java API, я предлагаю, чтобы в будущем вы не пометили свои вопросы тегом [tag: Java]. Как вы выполняете эти регулярные выражения, если не используете Java API? –

+0

Это часть функций электронной почты Jenkins, где у меня есть журналы создания, и я пытаюсь использовать плагин Jenkins для анализа этого текста с помощью REGEX. – user886614

Смежные вопросы