using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"<{if \$data\.nowPage>1}>.*?</div>\R*<{/if}>";
string input = @"
I'm looking for a regular expression to delete htmlA. The border start from
<{if $data.nowPage>1}> to /div> 1 breakLine <{/if}>
htmlA
<{if $data.nowPage>1}>
<div class=""pageArrow pageFirst""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=1""><span class=""icon arrow-first""></span></a></div>
<div class=""pageArrow pagePrev""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=<{$data.nowPage-1}>""><span class=""icon arrow-left""></span></a></div>
<{/if}>
I have tried
$fullHtml = readFileData($file);
preg_match(""/(<{if \\\$data\.nowPage>1}>(.*?)<\/div>)(\s)(.+?)<{\/if}>/si"",$fullHtml,$htmlA);
//$fullHtml = preg_replace(...,'',$fullHtml);
but it stopped too early and why print_r($htmlA) shows 5 keys?
Array
(
[0] => <{if $data.nowPage>1}>
<div class=""pageArrow pageFirst""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=1""><span class=""icon arrow-first""></span></a></div>
<div class=""pageArrow pagePrev""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}>
[1] => <{if $data.nowPage>1}>
<div class=""pageArrow pageFirst""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=1""><span class=""icon arrow-first""></span></a></div>
[2] =>
<div class=""pageArrow pageFirst""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=1""><span class=""icon arrow-first""></span></a>
[3] =>
[4] =>
<div class=""pageArrow pagePrev""><a href=""?<{if !empty($data.years)}>y=<{$data.years}>
)
fullHtml. line3 to line6.
<div class=""pageContainer"">
<div class=""pageBox"">
<{if $data.nowPage>1}>
<div class=""pageArrow pageFirst""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=1""><span class=""icon arrow-first""></span></a></div>
<div class=""pageArrow pagePrev""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=<{$data.nowPage-1}>""><span class=""icon arrow-left""></span></a></div>
<{/if}>
<{for $i=$data.nowPage-$data.pageFit to $data.totalPage}>
<{if $data.nowPage == ($i)}>
<div class=""pageBtn active""><a href=""javascript:void(0);""><{$i}></a></div>
<{else if $i>($data.nowPage+$data.pageFit)}>
<div class=""pageMore""><span class=""icon moreIcon""></span></div>
<{break}>
<{else if $i>0}>
<{if $i==$data.nowPage-$data.pageFit && $i>1}>
<div class=""pageMore""><span class=""icon moreIcon""></span></div>
<{/if}>
<div class=""pageBtn""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=<{$i}>""><{$i}></a></div>
<{else}>
<{/if}>
<{/for}>
<{if $data.nowPage<$data.totalPage}>
<div class=""pageArrow pageNext""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=<{$data.nowPage+1}>""><span class=""icon arrow-right""></span></a></div>
<div class=""pageArrow pageLast""><a href=""?<{if !empty($data.years)}>y=<{$data.years}><{/if}><{if !empty($data.month)}>&m=<{$data.month}><{/if}>&p=<{$data.totalPage}>""><span class=""icon arrow-last""></span></a></div>
<{/if}>
</div>
</div>";
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Singleline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx