Saya mencoba menguraikan jenis string berikut:
[key:"val" key2:"val2"]
di mana ada kunci acak: pasangan "val" di dalamnya. Saya ingin mengambil nama kunci dan nilainya. Bagi mereka yang penasaran, saya mencoba mem-parsing format database task warrior.
Inilah string pengujian saya:
[description:"aoeu" uuid:"123sth"]
yang dimaksudkan untuk menyoroti bahwa apa pun bisa menjadi kunci atau nilai selain dari ruang, tidak ada ruang di sekitar titik dua, dan nilai selalu dalam tanda kutip ganda.
Dalam simpul, ini adalah output saya:
[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"]' ]
Tetapi description:"aoeu"
juga cocok dengan pola ini. Bagaimana saya bisa mendapatkan semua pertandingan kembali?
"some string".match(/regex/g)