import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<\\{if \\$data\\.nowPage>1\\}>.*?</div>\\R*<\\{/if\\}>";
final String string = "\n"
+ " \n\n"
+ "I'm looking for a regular expression to delete htmlA. The border start from\n\n"
+ "<{if $data.nowPage>1}> to /div> 1 breakLine <{/if}>\n\n"
+ "htmlA\n\n"
+ "<{if $data.nowPage>1}>\n"
+ "<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>\n"
+ "<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>\n"
+ "<{/if}>\n\n"
+ "I have tried\n\n"
+ "$fullHtml = readFileData($file);\n"
+ "preg_match(\"/(<{if \\\\\\$data\\.nowPage>1}>(.*?)<\\/div>)(\\s)(.+?)<{\\/if}>/si\",$fullHtml,$htmlA);\n"
+ "//$fullHtml = preg_replace(...,'',$fullHtml);\n\n"
+ "but it stopped too early and why print_r($htmlA) shows 5 keys?\n\n"
+ "Array\n"
+ "(\n"
+ " [0] => <{if $data.nowPage>1}>\n"
+ " <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>\n"
+ " <div class=\"pageArrow pagePrev\"><a href=\"?<{if !empty($data.years)}>y=<{$data.years}><{/if}>\n"
+ " [1] => <{if $data.nowPage>1}>\n"
+ " <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>\n"
+ " [2] => \n"
+ " <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>\n"
+ " [3] => \n"
+ " [4] => \n"
+ " <div class=\"pageArrow pagePrev\"><a href=\"?<{if !empty($data.years)}>y=<{$data.years}>\n"
+ ")\n\n"
+ "fullHtml. line3 to line6.\n\n"
+ "<div class=\"pageContainer\">\n"
+ " <div class=\"pageBox\">\n"
+ " <{if $data.nowPage>1}>\n"
+ " <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>\n"
+ " <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>\n"
+ " <{/if}>\n\n"
+ " <{for $i=$data.nowPage-$data.pageFit to $data.totalPage}>\n\n"
+ " <{if $data.nowPage == ($i)}>\n"
+ " <div class=\"pageBtn active\"><a href=\"javascript:void(0);\"><{$i}></a></div>\n"
+ " <{else if $i>($data.nowPage+$data.pageFit)}>\n"
+ " <div class=\"pageMore\"><span class=\"icon moreIcon\"></span></div>\n"
+ " <{break}>\n"
+ " <{else if $i>0}>\n"
+ " <{if $i==$data.nowPage-$data.pageFit && $i>1}>\n"
+ " <div class=\"pageMore\"><span class=\"icon moreIcon\"></span></div>\n"
+ " <{/if}>\n"
+ " <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>\n"
+ " <{else}>\n"
+ " <{/if}>\n\n"
+ " <{/for}>\n\n"
+ " <{if $data.nowPage<$data.totalPage}>\n"
+ " <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>\n"
+ " <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>\n"
+ " <{/if}>\n"
+ " </div>\n"
+ "</div>";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html