패턴과 일치 한 후에 모든 값을 쉼표 (,
)로 구분하여 추출하고 싶습니다.문자열에서 쉼표로 구분 된 문자열을 추출하는 정규식
먼저 문자열을 정규식과 일치시키고 Matcher
을 사용하여 값을 추출합니다.
Regex =\(([^)]+)\)
은 아무런 문제없이 올바르게 다음 문자열과 일치합니다. 문자열 convert(datetime, 'Dec 27 2016 10:36:54', 116)
는 원래 문자열에서 사용할 수있는 경우
('A', '36254632546', 0, 'Test, test1', NULL)
그러나 수없는
일치합니다. 끝 부분에$
을 넣음으로써 마지막으로
)
과 일치하는 것을 시도했지만 작동하지 않는 것 같습니다.
문자열은 정규식 ')'첫 번째 정차하기 때문이다('A', convert(datetime, 'Dec 27 2016 10:36:54', 116), 0, 'Test, test1', NULL)
[자바에서 괄호 안에 중첩 된 문자열을 찾는 방법] (http://stackoverflow.com/questions/17759004/how-to-match-string-within-parentheses-nested-in-java)을 참조하십시오. 또한 [this snippet] (http://stackoverflow.com/a/37207892/3832970)이 도움이 될 수 있습니다. Java 정규 표현식이 재귀를 지원하지 않기 때문에 중첩 된 레벨 번호가 임의 인 경우 정규 표현식을 사용할 수 없습니다. –
프로그래밍 언어를 파싱하는 것처럼 보입니다. 정규 표현식이 가능한 모든 입력에 * 일치 할 수 있습니까? – GhostCat
이 https://regex101.com/에서 시도하십시오. – amicngh