ฉันพยายามแยกสตริงประเภทต่อไปนี้:
[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)