簡體   English   中英

正則表達式用Grails注釋替換JavaScript注釋

[英]Regex to replace JavaScript comments with Grails comments

我的目標是刪除所有渲染為HTML的JavaScript注釋。

在Grails中,您可以使用<%-comment-%>樣式的注釋,這些注釋不會出現在HTML輸出中,因此,我試圖提供一個表達式,可以用來匹配任何JS注釋。 我遇到的問題是,某些注釋已經包含在<%--%>中

我可以在正則表達式后面使用否定的外觀:

 (?<!<%-- )//(.*)

跳過選擇類似的內容:

 <%-- // some comment --%>

但我需要在<%-和//之間有一個任意數量的空格(包括無空格)

例如,正則表達式還需要跳過:

 <%--// some comment --%>
 <%--     // some comment --%>

關於如何做到這一點的任何想法? 我承認在正則表達式方面我有點業余。

我在某處讀到\\ s *可用於可選的空白字符,但是我似乎無法找出適當的語法來使其在后面的外觀中使用(或是否可以?)

您在\\ look *后面的\\ s *想法行不通,因為在大多數(如果不是全部)GREP版本中,您不能使用可變長度的lookbehind。

兩步版本還可以嗎?

  1. 刪除先前嵌套的注釋開始:用<%-替換<%-\\ s * //
  2. 將其余//注釋轉換為Grails表示法。

(編輯)

啊,GREP的奇跡。 經過一些側面思考:

搜索

(<%--\s*)?//\s*(.+?)(\s*--%>)?$

用。。。來代替

<%-- \2 --%>

假設您的GREP方言了解非貪婪修飾符表達式(。+?),在這種情況下,有必要防止使結尾序列“-%>”(畢竟是可選的)吞噬並加倍它在輸出中。

如果沒有,請嘗試以下操作:

(<%--\s*)?//\s*(((?!--%>).)*)(--%>)?

用相同的替換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM