2016-08-02 2 views
0

Я пытаюсь извлечь значение между выражением выражения регулярного выражения в муле, но оно возвращает null. В то время как это регулярное выражение работает, если я попытаюсь здесь https://regex101.com/Regex extract in Mule

Mule не позволяет регулярное выражение, прежде всего, он ожидает, чтобы избежать «»

<logger message="Regex #[regex('(?&lt;=\,)(.*?)(?=\,)')]" level="INFO" doc:name="Logger"/> 

Принимая во внимание следующие возвращает нулевое значение, если я пытаюсь убежать " ,»как '\',

<logger message="Regex #[regex('(?&lt;=\\,)(.*?)(?=\\,)')]" level="INFO" doc:name="Logger"/> 

Sample data: 06-28-2016-15:14:57,AMsySZYGi51CLhhsUhJDq0Nndcav,5128617

Любые мысли? Или есть другой способ извлечь без использования регулярного выражения?

+0

Вы хотите извлечь этот «AMsySZYGi51CLhhUUhJDq0Nndcav» для примера? –

+0

Да, точно. Просто AMsySZYGi51CLhhsUhJDq0Nndcav – gnanagurus

+0

Я не familier с mule, если вы можете передать группу capure, чем следующее regex, будет работать на вас: https://regex101.com/r/oG6yL3/2 –

ответ

0
(?<=(,))(.*?)(?=(,)) 

Экранирование здесь не нужно.

Или другой способ:

\,\K(.*)(?=(,)) 
+0

Проблема в том, что в муле это бросает это исключение. Если я использую ваше второе выражение, например: [Ошибка: незаконная escape-последовательность:,] [Near: {... regex ('\, \ K (. *) (? = (,))') .... }] ^ [Line: 1, Column: 9] – gnanagurus

+0

Как я думал - Mule Regex не распознает \ K, как многие двигатели. –

0

Вы пробовали использовать MEL?

<logger message="#[payload.split(',')[1]]" level="INFO" doc:name="Logger"/>