我有字符串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}+)");
- 不工作=(
答案 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 s
,create som
和create so
的预期输出是什么?