2016-06-20 2 views
0

따옴표 사이에 하이픈 없애, 문자열이 (고화질) 이름에 하이픈을 가지고 있으며, 나는 그것을 제거 할 ... 내가 가진는 정규식 내가 장치에서 다시 JSON 문자열을 얻을

현재

\"(.+?)\": 

하지만 ""안에 모든 것을 가져옵니다. 나는 모든 텍스트가 아닌 하이픈 만 사용하고 싶습니다. 나는 정규식이 항상 나를 혼란시키기 때문에 나는 문제가 거의 없다는 것을 안다. 아래에서 serialnumber를 serialnumber로 수정하고 value-2 ....를 수정하고 싶습니다.

{ 
    "result": { 
    "Response": { 
     "info": { 
     "serial-number": "xyz", 
     "value1": "value-2", 
+1

아마도 JSON 구문 분석기가 JSON을 처리 한 다음 결과의 속성 이름 어떤 JSON 파서를 사용하고 있습니까? – Richard

+0

* string.replace() * 또는 해당 메서드를 사용하면 더 쉽게 목표를 달성 할 수 있습니다. – guidot

+0

@guidot way .. ie "value-2".replace ("-", "")'value2'를 반환하지만, 여러 개의 hypens가 존재할 경우''va-lue-2 ''를 사용하십시오 .replace (/ -/g, "")' –

답변

1

당신은

/"([^"]*)-([^"]*)":/ 

을 일치시킬 수 있습니다 그리고 바로이 submatches로 교체. 이 닫는 " 사이에 공백이 결코 가정

json = json.replace(/-(?=[^"]*":)/g,""); 

: 룩어를 사용하여, 다른 버전의 다음

json = json.replace(/"([^"]*)-([^"]*)":/g,'"$1$2"'); 

: 이 작동합니다 JS 코드의 일종이다 http://www.regexpal.com/?fam=95143

보기 :

+0

정확하게 그냥 하이픈에 일치시킬 수있는 방법이 있나요 그래서 난 regex.replace를 사용할 수 있습니다 ? – whreed

+0

하이픈과 일치하는 미리보기가있는 버전을 추가했습니다. –

+0

Lookahead는 제가 원했던 그대로했습니다. 소년 나는 정규식이 싫어 하 고 아직도 그것을 이해하는 힘든 시간을 보내고있다 :) – whreed

관련 문제