Hallo,

Een beetje lastig te omschrijven maar ik maak bij joomla gebruik van een plugin en die wil ik iets aanpassen.

Dit is een stukje code wat goed functioneert:
<?php
$regex = "#((\d*) (.{3}).)( (\d{1,2}):(\d{1,2}):)(.*)(\s\-\s)(.*)#";
$replacement = '<td>$5:$6</td><td>$7</td><td>$8</td><td>$9</td>';
$insert_str = '<a href="'.$item->link.'" target="_blank"> <i class="icon-cogs icon-info" style="color: white"></i> </a>';

$content_buffer .= $this->_str_insert(preg_replace($regex, $replacement, $item->title), $rssfilter, $insert_str);
?>

In de $replacement zijn variabelen gedefineerd en wat ik nu wil: wat staat er nu 'precies' in $8 en $9?
Dus voor test bv:
<?php
echo $8; //resultaat is dan bv. WSV DS 1 of WSV HR 1
?>
Is dit mogelijk of moet je het dan met een array gaan doen?
Cijfers met een dollarteken ervoor kan je volgens mij alleen gebruiken in de preg_replace-functie. Verder kan je volgens mij geen PHP variabelen hebben die alleen uit cijfer(s) bestaan.
$8 is de 8e match in een regex.

als simpler voorbeeld:

<?php
$email = '[email protected]';

$b = preg_replace('#^(.*)@(.*)$#', 'voor: $1 na @: $2', $email);

echo $b;
?>

de eerste match heb je op het stuk voor het @. In dit geval dus "info"
de 2e match het hele stuk na de @, dus "phphulp.nl"

En zo nummert dat verder.

Wordt wel wat onduidelijk bij herhalingen in de regex, of bij regexen die ook nog non-matching stukken gebruikt of sowieso haakjes in de zoektekst heeft staan.
Ah dat helpt mij al verder.
Bij de laatste reactie is het gedaan via het @ teken. Ipv. het @ teken heb ik het - teken gebruikt want het gaat tussen twee teams. Nu krijg ik met wat er voor het - staat ook nog andere gegevens.

Nu moet ik de reguliere expressie zo aanpassen dat de zoek opdtracht pas start vanaf <td>, want om dit stukje string gaat het nog

<td>WSV DS 1</td><td>- tegenstander DS 1</td>
of
<td>tegenstander DS 1</td><td>- WSV DS 1</td>
Je moet uitgaan van 1 of meer voorbeelden van de input string, en dan daarna wat je met de output wilt gaan doen.

Voor een ander is het namelijk best lastig om een regex te lezen en te begrijpen als er niet voorbeelden van de invoer bij staan.

Reageren