如何让整个单词使用子串?

时间:2013-02-28 15:01:13

标签: java regex string substring

我有字符串String fulltext = "I would like to create some text and i dont know what creater34r3, ";

我有子串String subtext = "create s";"create som""create so" ..

如何获取subtext的整个单词?(在本例中为“创建一些”或“创建”)

Pattern.compile("\\b(" + subtext + "\\p{Alnum}+)"); - 不工作=(

2 个答案:

答案 0 :(得分:5)

它有效,但您应该使用Matcher.find()(找到第一次出现的正则表达式)而不是Matcher.matches()(它针对整个字符串测试正则表达式)。

Matcher m = Pattern.compile("\\b(" + subtext + "\\p{Alnum}*)").matcher(fulltext);
System.out.println(m.find());
System.out.println(m.group(1));

打印

true
create some

编辑:正如Sean Landsman指出的那样,它应该是\\p{Alnum}*(因为子文本可能出现在字符串的末尾,如果使用+量词,则不会匹配。)

答案 1 :(得分:3)

怎么样?

Pattern.compile("\\b(" + subtext + "\\p{Alnum}*)");

这将返回上面3个子字节的create some

如果没有,您能否说出create screate somcreate so的预期输出是什么?