2016-11-14 12 views
-1

Google 시트 RE2 구문에서 아래와 같은 쿼리를 추출해야합니다.re2에서 문자열 사이를 검색하는 정규식을 찾는 방법은 무엇입니까?

주, ""} : : 문제는 내가 (문장 부호와 단어의 양) "이름"사이에있는 모든이 있어야한다, 이것은 단지 하나 개의 세포 인이 같은 많은 거기에 내 스프레드 시트

interests":[ 
{"id":"1","name":"West Bromwich Albion F.C."}, 
{"id":"2","name":"Tottenham Hotspur F.C."}, 
{"id":"3","name":"Arsenal F.C."}, 
{"id":"4","name":"Liverpool F.C."}, 
{"id":"5","name":"Sunderland A.F.C."}, 
{"id":"6","name":"EPL"},  
{"id":"7","name":"Southampton F.C."}, 
{"id":"8","name":"Manchester United F.C."}, 
{"id":"9","name":"A-League"}, 
{"id":"10","name":"West Ham United F.C."}, 
{"id":"11","name":"Chelsea F.C."}, 
{"id":"12","name":"Burnley Football Club"}, 
{"id":"13","name":"Barclays English Premiership"}, 
{"id":"14","name":"Stoke City F.C."}, 
{"id":"15","name":"Arsenal"}, 
{"id":"16","name":"Crystal Palace F.C."}, 
{"id":"17","name":"Football"}, 
{"id":"18","name":"Aston Villa F.C."}, 
{"id":"19","name":"Norwich City F.C."}, 
{"id":"20","name":"Leicester City F.C."}, 
{"id":"21","name":"Everton F.C."}, 
{"id":"22","name":"Arsenal Fans"}, 
{"id":"23","name":"Manchester City F.C."}]}], 

내 공식

=iferror(REGEXEXTRACT(K98, "name\W:\W(.*?)\W}"), "") 

이지만 내가 축구 클럽의 모든 이름을 필요로하는 열에서 하나를 반환 같은 열에 또는 별도로.

은 또한 동일한 열에서의 배치

=regexreplace(K98,"^interests\W+id\W\W+\w+\W+name\W:\W(.*?)\W},\W+id\W\W+\w+\W+name\W:\W(.*?)\W},\W+id\W\W+\w+\W+name\W:\W(.*?)\W}]}],$","$1, $2, $3") 

사용하여 시도하지만 찾을 수 없습니다 아래 (예)

interests":[{"id":"1","name":"Movies"},{"id":"2","name":"Entertainment"}]}], 

B)을 반환한다, 그래서 각각에 대한 REGEXMATCH 넣어 (. ?)이 여전히 사례를 읽습니다.?을 처리하는 방법

+0

[* JSon 데이터를 5 분 이내에 Google 스프레드 시트로 가져 오는 방법 *] (https://medium.com/@paulgambill/how-to-import -json-data-into-google-spreadsheets-in-5-a3fede1a014a # .7ku2if8fu). –

답변

1

다음 세 가지 캡처 그룹을 만들 수 있습니다. REGEXREPLACE,이 같은 두 번째 캡처 그룹과 문자열을 대체 :

=REGEXREPLACE(A2,"({""id"":""\d+"",""name"":"")(.*)(""},)","$2") 

enter image description here

하고 ARRAYFORMULA를 사용하려는 경우, 그냥이 같은 A2:A에 대한 참조를 변경 :

=ARRAYFORMULA(REGEXREPLACE(A2:A,"({""id"":""\d+"",""name"":"")(.*)(""},)","$2")) 

enter image description here

모두 하나의 셀에 넣으려면 다음과 같은 조인을 사용하여 함수를 래핑 할 수 있습니다.

=join(";",ARRAYFORMULA(REGEXREPLACE(A2:A,"({""id"":""\d+"",""name"":"")(.*)(""},)","$2"))) 

여기서 ";" 내 구분 기호로 - 선택하는 구분 기호를 효과적으로 사용할 수 있습니다.

+0

나는 그들이 같은 셀에 모두 필요하다고 언급하는 것을 잊었다. –

+0

나는 그것을하기 위해 join 함수를 사용하는 방법을 포함하도록 대답을 업데이트했다. –