[ABC DEF] eşleşmesi (http://google.com)

Aşağıdaki dizeyi, başarılı olmadan eşleştirmeye çalışıyorum.

Şimdiye kadar yaptım.

/\[([^\]]+)(\([^\)]+)/

Çalışmayacak son kısım (\ ([^ \)] +) .

Diğer bir deyişle;

var meta = "[ABC DEF] (http://google.com)"

  • This part works.

    meta.match(/\[([^\]]+)/) => ABC DEF

  • This doesn't work.

    meta.match(/\[([^\]]+)(\([^\)]+)/)//=> null

İstediğim bu.

["ABC DEF", "http://google.com"]

Herkes neden işe yaramadığını biliyor mu?

1

1 cevap

Sonunu ] kaçırdınız. Ayrıca, ) 'in bir karakter sınıfında kaçmasına gerek yoktur. Üçüncü olarak, sonunu ekleyebilirdiniz ve son olarak ( (...) dizgesini koymamanız gerekir. kibrit dizisinde olmasını istiyorum.

meta.match(/\[([^\]]+)]\(([^)]+)\)/)
                      ^  ^  ^
5
katma
Mükemmel çalıştı, teşekkürler!
katma yazar Oleander, kaynak
@Reid: Olmalı mı? Olmadan çalışır, çünkü [ açıklığı yoktur, bu nedenle belirsiz değildir.
katma yazar pimvdb, kaynak
Takip eden ] kaçtı
katma yazar Reid, kaynak
Ah, anlıyorum; sen haklısın Ben sadece bunu düşünmedim ki normal ifadelerden kaçardım.
katma yazar Reid, kaynak