Java正则表达式任何{100} SomethingAnything {100},需要保存左右字符

时间:2014-09-02 16:26:41

标签: java regex

如何匹配 - 任何{100Chars} + MyString +任何{100Chars}?我需要保存左右字符串。 这个东西不起作用(没有找到模式字符串是text,leftContext为RightContext是null):

String text="*SomeText*";
String word = hello; 
int nLeft=100; 
int nRight=100;

String wordDelRegEx = "[^a-zA-Z0-9.-]+?";
String leftRegEx = "[\\w]{" + nLeft + "}";     
String rightRegEx = "[\\w]{" + nRight + "}";

String contextRe = leftRegEx + wordDelRegEx + word + wordDelRegEx + rightRegEx;
Pattern pattern = Pattern.compile(contextRe);
Matcher matcher = pattern.matcher(Text);
while (matcher.find()) {
        leftContext = matcher.group(1);
        rightContext = matcher.group(2);
    }

    System.out.println("Left: " + leftContext);
    System.out.print("Right: " + rightContext);

例如我有文字:

  

如果你还没找到它,继续寻找。不要安定下来。就像内心的所有事情一样,当你找到它时,你就会知道。而且,就像任何伟大的关系一样,随着岁月的流逝,它会越来越好。

word="heart", nLeft=5, nRight=5

我想看到的输出:

Left:   " the "
Right:  ", you"

1 个答案:

答案 0 :(得分:3)

添加捕获括号:

String leftRegEx = "(\\w{" + nLeft + "})";     
String rightRegEx = "(\\w{" + nRight + "})";