2010-12-14 67 views
0

J'ai un code HTML en tant que variable chaîne dans Coldfusion.RegExpression pour remplacer le texte dans les balises

Par exemple:

<cfset str = "<span class='xyz'> sample text within span </span>" > 

Maintenant, je veux repalce la durée de mot de texte « texte d'échantillon dans la durée », mais pas le nom de la balise.

Quelqu'un peut-il m'aider?

Merci d'avance.

+0

La façon la plus claire pour expliquer votre objectif serait de mettre à jour votre question d'inclure un exemple de ce que vous voulez convertir le texte en. –

Répondre

0

J'ai changé mon code comme ça et ça a l'air de marcher, mais comment est-il efficace? Je ne sais pas Quelqu'un peut-il vérifier?

<cfset htmlcontents = ReReplaceNoCase(htmlcontents, "(>[^<]*?)(#Lcase(text2replace)#)", "\1<span class=suchehighlight>\2</span>","ALL")> 

Merci

0

Je vais répondre bêtement à votre question:

<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#" /> 

Avertissement: si je me suis surpris à écrire cela, je me croirais probablement sur la mauvaise voie.

Cette route conduit à un essayant d'utiliser des expressions régulières pour analyser HTML, considéré comme une mauvaise chose comme mentionné dans l'article this. Vous pouvez peut-être nous expliquer un peu plus votre problème et nous pouvons vous aider.

+0

L'exemple du questionneur pourrait probablement être fait avec l'analyse XML. – orangepips