2016-08-02 3 views
0

뮬에서 정규 표현식을 사용하여 쉼표 사이의 값을 추출하려고하지만 null을 반환합니다. '나는 https://regex101.com/노새의 정규식 추출물

뮬은 우선 정규식을 허용하지 않습니다 여기하려고하면이 정규식 작동하는 반면, 다음과 같은 반환 반면

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

', '탈출을 기대하고 내가 탈출을 시도하는 경우, 널 (null) \ '

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

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

어떤 생각'같은 '? 또는 정규식을 사용하지 않고 추출 할 수있는 다른 방법이 있습니까?

+0

'AMsySZYGi51CLhhsUhJDq0Nndcav'를 추출 하시겠습니까? –

+0

예, 정확하게. 그냥 AMsySZYGi51CLhhsUhJDq0Nndcav – gnanagurus

+0

정규 표현식을 사용하면 capure 그룹을 참조 할 수있는 경우 mule과 친숙하지 않습니다. https://regex101.com/r/oG6yL3/2 –

답변

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

여기서 탈출 할 필요가 없습니다.

또는 다른 방법 :

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

문제는, 노새에서이 예외를 던집니다. 예를 들어 두 번째 표현식을 사용하면 [오류 : 불법 탈출 시퀀스 :] [근처 : {... regex ('\, \ K (. *) (? = (,))') .... }] ^ [줄 : 1, 열 : 9] – gnanagurus

+0

제가 생각하기에, Mule Regex는 많은 엔진과 마찬가지로 \ K를 인식하지 못합니다. –

0

하면 MEL을 사용하여 시도 적이 있습니까?

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