如何在Pattern类中使用变量而不是字符串?

时间:2013-09-25 21:40:29

标签: java regex

我试图在两个单词之间搜索一个单词,并且正在使用Java中的Pattern类。到目前为止,我的代码是:

Pattern pattern = Pattern.compile("(?<=PlaintiffAtty_0).*?(?=</span>)");
Matcher matcher = pattern.matcher(sourcecode.toString());

        while (matcher.find()) {
            System.out.println(matcher.group().toString()); 

第一个模式词“PlaintiffAtty_0”将随着数字的增加而改变,所以我想将它用作变量。如何在那里插入变量而不必每次都更改字符串?

1 个答案:

答案 0 :(得分:3)

使用字符串连接和Pattern.quote来确保字符串中的任何特殊字符都按字面处理:

Pattern.compile("(?<="+Pattern.quote(myString)+").*?(?=</span>)");

其中myString是变量,方法调用,对数组的访问等等。