다음과 같은 문자열을 구문 분석하려고합니다.
[key:"val" key2:"val2"]
내부에 임의의 키 : "val"쌍이있는 경우 키 이름과 값을 가져오고 싶습니다. 호기심 많은 사람들을 위해 작업 전사의 데이터베이스 형식을 구문 분석하려고합니다.
내 테스트 문자열은 다음과 같습니다.
[description:"aoeu" uuid:"123sth"]
이것은 공간을 제외하고 키나 값에 무엇이든지있을 수 있으며 콜론 주위에 공백이 없으며 값은 항상 큰 따옴표로 묶여 있음을 강조하기위한 것입니다.
노드에서 이것은 내 출력입니다.
[deuteronomy][gatlin][~]$ node
> var re = /^\[(?:(.+?):"(.+?)"\s*)+\]$/g
> re.exec('[description:"aoeu" uuid:"123sth"]');
[ '[description:"aoeu" uuid:"123sth"]',
'uuid',
'123sth',
index: 0,
input: '[description:"aoeu" uuid:"123sth"]' ]
그러나이 description:"aoeu"
패턴과도 일치합니다. 모든 경기를 어떻게 되 찾을 수 있습니까?
"some string".match(/regex/g)