정규식을 사용하여 아포스트로피 사이에있는 문자열에서 부분 문자열을 가져 오려고합니다. 문자열의 형식 : Duplicate entry '[email protected]' for key 'email'
. 내가 사용하는 정규식 : '([^']*)
.아포스트로피간에 데이터를 가져 오는 방법 Android
코드 :
Pattern pattern = Pattern.compile("'([^']*)");
Matcher matcher = pattern.matcher(duplicated);
Log.d(TAG, matcher.group()));
내가 matcher.group()
에 대해도 확실하지 오전 전체 정규식과 일치하는 단일 문자열을 반환합니다. 내 경우 두 개의 부분 문자열을 반환해야합니다.
누군가가이 정규식을 해결하고 나에게 설명을 줄 수 있습니까? 미리 감사드립니다.
네, 처음에 나는처럼하고 싶었다 이것은 "중복 항목", "[email protected]", "키", "이메일"을 반환합니다. 괜찮아요,하지만 "split()"메서드의 효율성에 대해서는 모르겠지만 "[email protected]"및 "email"을 반환하는 정규식은 시간과 메모리가 조금 더 효율적일 것이라고 생각했습니다. 와 "matcher()"가 있습니다. 그래서 split()이 더 좋다고 말하는 것입니다. – Husky
'문제가 발생하여'Matcher()'가 최대 횟수로 실패합니다. 그것을 피하십시오. 'split()'은'Regex'보다 시간 복잡성이 매우 적습니다. 나의 제안은'split()'을 더 잘 사용한다. –
Ok, 고맙다. – Husky