Iki iğne Maç PHP düzenli ifade

4 Cevap php

Ben bir diziye bir dize 2 unsurları ayıklamak için arıyorum. Dize bir hava linki:

Thursday at 08:00 BST: white cloud. 10°C (50°F)

Ben "white cloud" ve "10°C" parçalarını istiyorum. Yani "BST:" ve "." gibi °C "" arasına "ve" arasındaki maç gerekir.

Ben ihtiyacım düzenli ifade (ler) ile mücadele ediyorum ve gerçekten yardım bekleriz!

4 Cevap

Böyle bir şey yapmanız gerekir:

preg_match('/: (.*?)\. (-?\d+)/', $str, $matches);

Dikkat etmeniz gereken şeyler:

  • BST'de eşleşmiyor ya da biz GMT taşımak zaman kışın kıracak
  • Negatif sıcaklıklar için dikkat

Bu normal ifade deneyin:

^\w+ at \d{2}:\d{2} BST: ([^.]+)\. (-?\d+°C)

Kelimeler arasında tek bir boşluk yoksa, \s+ ile değiştirin.

Gibi bir şey:

/BST: (.*) ([0-9]+°C)/

Eğer denemek do eğer ° uyan bir sorun olabilir, ancak çalışması gerekir:

/BST: (.*) ([0-9]+.C)/