Reg Expression Text innerhalb von Tags zu ersetzen
-
10-10-2019 - |
Frage
Ich habe HTML-Code als String-Variable in Coldfusion.
Zum Beispiel:
<cfset str = "<span class='xyz'> sample text within span </span>" >
Jetzt möchte ich das Wort Spanne von Text "Beispieltext innerhalb span" repalce aber nicht den Tag-Namen.
Kann jemand mir helfen?
Vielen Dank im Voraus.
Lösung 2
Ich habe meinen Code wie folgt geändert und es scheint zu funktionieren, aber wie efficent es ist, ich weiß nicht, Kann jemand bitte überprüfen?
<cfset htmlcontents = ReReplaceNoCase(htmlcontents, "(>[^<]*?)(#Lcase(text2replace)#)", "\1<span class=suchehighlight>\2</span>","ALL")>
Danke
Andere Tipps
Ich werde dumbly Ihre Frage beantworten:
<cfset str = "<span class='xyz'> sample text within span </span>" >
<cfdump var="#str#" />
<!--- Convert to list based on start and end tag brackets --->
<cfset arr = listToArray(str, ">,<") />
<!--- Replace the ACTUAL text --->
<cfset newStr = replace(str, arr[2], "my new text") />
<cfdump var="#newStr#" />
Disclaimer: wenn ich mich dieses Schreiben gefangen würde ich wahrscheinlich denken, mich auf dem falschen Weg.
Diese Straße führt zu einem Versuch, reguläre Ausdrücke zu verwenden, um Parsing HTML, als eine schlechte Sache angesehen, wie in diese Artikel.
Vielleicht haben Sie Ihr Problem ein wenig mehr erklären kann, und wir können helfen.