我想要將大量(> 1500)的JSP文件轉換爲JSPX。我使用的工具將解析格式良好的JSP並轉換爲JSPX,但是,我的JSP並非都是格式良好的:)使用正則表達式處理JSP文本
我的解決方案是預處理JSP並轉換不整齊的代碼,以便該工具將正確解析它們。我試圖解決的主要問題是未加引號的屬性值。例子:
<INPUT id="foo" size=1>
<input id=body size="2">
我尋找這些當前正則表達式是(在Java字符串格式):
"(\\w+)=([^\"' >]+)"
我的替換字符串(在Java字符串格式):
"$1=\"$2\""
這運行良好,除了少數模式外,這兩種模式都涉及內聯腳本。例如:
<INPUT id=foo value="<%= someBean.method("a=b") %>">
在這種情況下,我的模式匹配字符串文字「a = b」,我不想這樣做。我想要發生的是,正則表達式會忽略<%和%>之間的任何值。有沒有一個正則表達式可以做我想做的事情?
編輯: 更改爲標題,以澄清,我不是試圖用正則表達式解析HTML/JSP ...我正在做一個簡單的語法轉換來準備解析輸入。
看起來您正在嘗試將類似XML的語言與正則表達式匹配。在繼續沿着這條道路前,您可能需要閱讀http://stackoverflow.com/a/1732454/159388。 – murgatroid99
不,我沒有試圖用正則表達式來解析XML。正如我在上面提到的問題,我正在使用另一個解析JSP的工具。在解析器完成其工作之前,我正在嘗試對文本進行詞法預處理。 –