어떤 응답 데이터를 가져와서 json (딕셔너리) 형태로 바꾸는 기능을 만들고싶습니다.
예를들어 응답 데이터 중 특정 부분이 example:key1="value1",key2="value2",...,key#="value#" 라는 문자열이라면
데이터에 접근하기 용이하도록 {"example":{"key1":"value1","key2":"value2",...,"key#":"value#"}} 과 같은 json (딕셔너리) 형태로 바꾸고 싶습니다.
이를 위해서 데이터에서 해당 부분을 찾아줄 (?:example:), 키와 벨류값을 그룹화해주기 위해 (?:([w]*)="([w]*)",?), 아이템의 갯수가 동적이기 때문에 {1,} 부분을 합쳐서 (?:example:)(?:([w]*)="([w]*)",?){1,} 라는 정규표현식을 사용해봤는데 [key#, value#] 와 같이 마지막 아이템만 그룹을 만들어버립니다.
제가 원하는 결과값은 [key1, value1, key2, value2, ... ,key#, value#] 와 같이 아이템들이 모두 들어가 있는 형태입니다.
혹시 정규표현식에서 그룹 개수를 동적으로 할당하는게 불가능 한건지 질문드립니다.
+)
그룹 항목을 보면 마지막 키벨류쌍만 잡힙니다.
키벨류값을 한번에 잡아도 마찬가지로 마지막 아이템만 적용됨
본문 내용대로
https://regexr.com/
에서 돌려봤을땐 잘 잡히는거 같은데 json만드는쪽에 이상있는게 아닐지..
g플래그 붙이신?
사진 첨부 했습니다. 저도 테스트 할때
https://regexr.com/
돌려봤는데 결과는 마찬가지였습니다. (gm 플래그 붙이고 테스트 했는데 플래그 붙이나 안붙이나 차이가 없었습니다.)
https://stackoverflow.com/questions/37003623/how-to-capture-multiple-repeated-groups
데이터의 아이템들 개수가 동적이라서 특정 부분을 포괄하는 정규표현식과 해당 부분에서 원하는 그룹들로 나눠줄 정규표현식으로 나눠서 사용해야겠네요. 진심으로 감사드립니다.
닷넷이면 캡처링 프로퍼티가 있어서 가능한데. 보통 정규식 라이브러리에 그런 기능까진 없어서 이미 얻은 답이 최선일 듯.