我正在嘗試匹配 JSP 代碼中 <%.....%> 之間的內容。假設示例 JSP 代碼是:
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Auto Refresh</title>
</head>
<body>
<fieldset style="width:20%; background-color:#e6ffe6;">
<legend>Auto refresh</legend>
<h2>Auto Refresh Example</h2>
<%
// Set refresh, autoload time as 1 seconds
response.setIntHeader("Refresh", 1);
// Get current time
Calendar calendar = new GregorianCalendar();
String am_pm;
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
if(calendar.get(Calendar.AM_PM) == 0)
am_pm = "AM";
else
am_pm = "PM";
String CT = hour ":" minute ":" second " " am_pm;
out.println("Crrent Time: " CT "\n");
%>
</fieldset>
</body>
</html>
我的正則運算式是/\<\%[\w \@\=\.\*\,\"\$\#\!\&\(\)\/\/\n\ \;\:]*\%\>/gi
它唯一匹配的第一部分即
<%@ page import="java.io.*,java.util.*" %>
不是第二部分
<%
// Set refresh, autoload time as 1 seconds
response.setIntHeader("Refresh", 1);
........
String CT = hour ":" minute ":" second " " am_pm;
out.println("Crrent Time: " CT "\n");
%>
uj5u.com熱心網友回復:
如果您放棄%>試用,您可以看到它的匹配程度。直到反斜杠 at\n"因為它不包含在您指定的字符集中。添加反斜杠或使用更一般的東西
/<%[\s\S]*?%>/g
這將延遲匹配和之間的任意數量的任何字符。<%%>
在 regex101 上查看此演示
uj5u.com熱心網友回復:
試試這個正則運算式。它簡短而簡單。
/<%.*?%>/gs
演示
解釋
.*? 匹配從零到無限次的任何字符,盡可能少(懶惰)。
因此,它需要介于<%和 最接近之間的所有內容%>。注意單行修飾符/s
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378785.html
標籤:javascript 正则表达式
