niteliklerin özü adları ve değerleri için regex

0 Cevap php

Ben bir html jeneratör içine beslemek böylece diziler dönüşmesi için gereken aşağıdaki olası dizeleri var. Ben HTML veya XML ile bakan değilim, bana daha okunabilir kod ile çok daha basit ve hızlı benim html nesneleri doldurmak için izin verecek bir steno oluşturmak çalışıyorum.

id='moo'
id = "foo" type= doo    value ='do\"o'
on_click='monkeys("bobo")'

Ben Attribs ve bunlara karşılık gelen değerlerini dışarı çekmek gerekir. Bu attrib dizeleri bir html veya xml etiketi ile ilişkili değildir. Ve ben 1 ila 3 regular expressions ile yapmak istiyorum

  • Bu değer tek veya çift ya da tırnak ile kapsüllenebilir
  • Değeri tırnak tarafından kapsüllü ise o da boşluk içerebilir, tırnak kapsülleme farklı tırnak ya da kapsülleme tırnak aynıdır tırnak kaçtı.
  • Veya attrib ile = arasındaki boşlukları ve = ve değer orada olmayabilir.

Nihai sonucu gibi görünmelidir:

array(1) {
  [id] => moo
}
array(3) {
  [id] => foo
  [type] => doo
  [value] => do"o
}
array(1) {
  [on_click] => monkeys("bobo")
}

ama bu gibi çıkarsa:

array(2) {
  [0] => id
  [1] => moo
}
array(6) {
  [0] => id
  [1] => moo
  [2] => class
  [3] => foo
  [4] => value
  [5] => do"o
}

array(2) {
  [0] => on_click
  [1] => monkeys("bobo")
}

Ben oradan yeniden düzenleyebilirsiniz.

Onların sorunları kullanımı ve denedim önceki bazı regexes:

  • = Etrafında hiçbir boşluk yoktu dön attrib / değer çiftleri sadece - /[\s]+/
  • /(?<==)(\".*\"|'.*'|.*)$/ - kapsüllenmesinde tırnak işaretleri dahil değerini döndürür. Ama değeri içinde kaçtı tırnak görmezden geliyor
  • /^[^=]*/ - sadece para cezası niteliğini döndürür. ne olursa olsun attrib ve = arasında boşluk

0 Cevap