對不起,但我不確定如何更好地解釋它。正則表達式與模式中最後一個字符的第一個實例不匹配
我正在爲一個學校項目建立一個簡單的網絡服務器,它必須解析一個自定義的腳本語言。我有一條線,看起來像這樣:
<p>Here's the date: <% pr date() %></p><p>Here's the date again: <% pr date() %></p>
我使用下面的正則表達式,試圖拉出<%...%>的東西...
<% *(.*) *%>
問題是從第一個開放標籤到最後一個結束標籤進行匹配,而不是從第一個開放標籤到第一個結束標籤進行匹配。所以導致比賽是這樣的:
<% pr date() %></p><p>Here's the date again: <% pr date() %>
...而不是:
<% pr date() %>
我以爲我可以用這樣的解決它,但它似乎並沒有工作:
<% *([^(<%)]*) *%>
...但它似乎沒有工作。任何幫助表示讚賞,謝謝。
謝謝你,你能指出我在一個資源的方向可能解釋正則表達式的替代更詳細?如果我要寫一個手寫的解析器/掃描器,我不知道從哪裏開始。 – ARW
但是您已經在編寫自定義腳本語言了? –
也可以在評論中動態地插入值。例如T4模板不考慮封閉文本的語法。 –