hi nina,
bin mir sicher, dass sich da schon genug den kopf zerbrochen haben und es das schon gibt. aber ich finde nichts im web :(
und zwar soll, wenn in nem href tag eines links/anchors das zeichen ~ durch einen string ersetzt werden. doch wie muss der regexp lauten?
Wenn der "Link" so aussieht:
<a ... href="~" ...>...</a>
Dann klappt es hiermit fast immer:
$link = '... <a href="~" class="eine_klasse">ein Link</a> ...';
$ersatz = 'irgendwas';
$neu = preg_replace(
'/(\<a[^\>]+href\=)([\'\"])(\~)(\2)([^\>]*\>)/',
'$1$2'.$ersatz.'$4$5',
$link
);
Der RegEx aufgedröselt:
1. (<a[^>]+href=) ... alles, was vor dem href-Attribut kommt
2. (['"]) ... die linken Begrenzungszeichen für den Attributwert
3. (~) ... die Tilde
4. (\2) ... die rechten Begrenzungszeichen für den Attributwert
5. ([^>]*>) ... alles, was nach dem href-Attribut kommt
[^>] ... ein beliebiges Zeichen außer dem "Größer-Als"
\2 ... eine Rückreferenz ("back reference"), die genau das gleiche enthalten muss, wie das Muster, das in Klammer 2 gefunden wurde
PCRE-Suchmuster-Syntax
PCRE-Suchmuster-Modifikatoren
Was mir schon oft geholfen hat, ist die "Original-Anleitung" zu den PCRE:
http://www.pcre.org/pcre.txt
MffG
EisFuX
... Suchmaschinen-Blog ...