如何使用变量构建Java正则表达式模式

时间:2014-04-22 06:27:31

标签: java regex

编辑以帮助澄清请求:

我需要构建一个由三个元素组成的Java正则表达式模式;一个正则表达式字符串与一个整数变量连接在一起,该变量与正则表达式字符串的结尾连接在一起。

示例HTML:

<div class="page">1</div>
<div class="listItem"><a href="this-is/a-dummy-url-extension">

我开发的正则表达式:

int page = 1; 
Pattern p = Pattern.compile("page\">" + page + "</div><div class=\"listItem\"><a href=\"(.*?)\">");

目标:使用正则表达式模式在使用以下方法逐行读取之后定位上面的HTML行。

http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/essential/regex/examples/MatcherDemo.java http://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html

现在它无效。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

String patternFormat = "slider\">%d</div><div class=\"listItem\"><a href=\"(.*?)\">";
pattern = Pattern.compile(String.format(patternFormat, 1));
pattern = Pattern.compile(String.format(patternFormat, 2));

答案 1 :(得分:0)

由我寂寞解决;我遇到的问题是那个;

  1. 我没有考虑close和Opening标签之间的空白区域。

  2. 第一个div标签位于单独的&#39;行上。比第二个。如果您一次读取一行并检查每行中的模式,那么构建跨越两行的模式并不起作用。 :)