2011-12-20 25 views
0

我只看到PHP解決這個問題。僅在標籤中用雙引號替換單引號!使用ColdFusion正則表達式

基本上,我需要去從:

<TEXTFORMAT LEADING='2'><P ALIGN='LEFT'><FONT FACE='Verdana' style='font-size:10' COLOR='#0B333C'>My name's Mark</FONT></P></TEXTFORMAT> 

這樣:

<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Verdana" style="font-size:10" COLOR="#0B333C">My name's Mark</FONT></P></TEXTFORMAT> 

使用ReReplaceNoCase但......是啊,你猜對了..我吸在正則表達式! :)

+2

[你不應該試圖用正則表達式解析HTML! ](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – Bohemian 2011-12-20 05:12:32

回答

1

而不是使用正則表達式,你可以做你在這種情況下,需要通過什麼讓CF爲你做的工作,通過XML解析庫:

<cfsavecontent variable = "origStr"> 
    <cfoutput> 
     <TEXTFORMAT LEADING='2'><P ALIGN='LEFT'><FONT FACE='Verdana' style='font-size:10' COLOR='##0B333C'>My name's Mark</FONT></P></TEXTFORMAT> 
    </cfoutput> 
</cfsavecontent> 
<cfset xmlString = ToString(xmlParse(origStr))> 

<cfdump var="#xmlString#"> 

哪會回來:

<?xml version="1.0" encoding="UTF-8"?> <TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT COLOR="#0B333C" FACE="Verdana" style="font-size:10">My name's Mark</FONT></P></TEXTFORMAT> 

如果領先<?xml...>惹惱了你,你可以減少此部分內容:

<cfdump var="#Right(xmlString, Len(xmlString) - 40)#"> 
+0

謝謝傑克,** **治療**!我遇到的唯一問題是我實際上試圖驗證MathML數據,它有自己的DTD和m:數學標籤上的驗證碼。因此,我必須在開始標記(xmlns:m =「http://www.w3.org/1998/Math/MathML」)上添加MathML的名稱空間,這是我喜歡的大量修改方法。噢,我會努力工作!感謝一堆! – 2011-12-22 01:00:09

相關問題