複数行ブロックを含む2文字間のすべてをキャプチャする正規表現 質問する

複数行ブロックを含む2文字間のすべてをキャプチャする正規表現 質問する

<% と %> の間のすべてのテキストとテキスト ブロックをキャプチャします。

例えば:

<html>
<head>
<title>Title Here</title>
</head>
<body>
<% include("/path/to/include") %>
<h1>Test Template</h1>
<p>Variable: <% print(second_var) %></p>
<%

variable = value;

foreach(params here)
{
    code here
}

%>
<p><a href="/" title="Home">Home</a></p>
</body>
</html>

試してみましたが、ブロックも\<\%(.*)\%\>含めてすべてがキャプチャされます。<h1>Test Template</h1>

ベストアンサー1

どの正規表現エンジンを使用していますか?

<%(.*?)%>

「ドットは改行に一致する」オプションを有効にすると動作するはずです。設定方法がわからない場合は、

<%([\s\S]*?)%>

または

(?s)<%(.*?)%>

ちなみに<、、、から逃げる必要はあり%ません。>

おすすめ記事