[PHP] /^([0-9]+)(.*)/ werkt niet

Pagina: 1
Acties:

  • Blubber
  • Registratie: Mei 2000
  • Niet online
Ik wil elke regel van nmap die een open port aangeeft zoals deze:
22/tcp open ssh

bold en rood weergeven, dus ik maak deze regexp:
$nmap = preg_replace("/^([0-9]+)(.*)/", "<font color=\"#FF0000\"><b>\\1</b></font>\\2", $nmap);

Zoals je ziet is het de bedoeling dat alleen de poort rood wordt, verder alles normaal. Maar als ik deze regex op me nmap resultaten loslaat gebeurt er niets? Iemand enig id wat er fout is?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

ehm
letterlijk gecopypaste doet ie hier precies wat de bedoeling is hoor.
print je $nmap wel? :+

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Nou, en dat om 3 uur `s nachts :D hehe

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Dit werkt bij mij met bovenstaand voorbeeld:
PHP:
1
preg_replace("/([0-9]+)\\/([a-z]+)\\s([^$]*)/","<font color='#FF0000'><b>\\1</b> \\2</font>\\3",$nmap);


met jouw /^([0-9]+)(.*)/ zeg je neem 1 of meer getallen vanaf het begin van de regel en sla deze op; neem eventuele aansluitende non-whitespace en sla deze op. Er zit echter een / na het poortnummer gevolgd door protocolnaam (die we apart opslaan voor de netheid). Hierna volgt eventueel een spatie, waarna we de eventuele rest van de regel opslaan. Je moet je regex zo schrijven dat ie of de hele regel matcht, of hoogstens 1 aaneensluitend deel. Met eventuele spaties en andere whitespace moet je dus rekening houden.

[ Voor 0% gewijzigd door Verwijderd op 04-08-2002 05:35 . Reden: netter en typo ]