Java中查找指定长度且指定起始和结束的正则表达式

And*_*son 5 java regex

我想找到所有长度为 3、以“l”开头、以“f”结尾的单词。这是我的代码:

Pattern pt = Pattern.compile("\\bl.+?f{3}\\b");
Matcher mt = pt.matcher("#Java life! Go ahead Java,lyf,fly,luf,loof");

while(mt.find()) {
    System.out.println(mt.group());
}
Run Code Online (Sandbox Code Playgroud)

它什么也没显示。尝试过这个也Pattern pt = Pattern.compile("l.+?f{3}");仍然没有得到预期的o/p。

O/P 应该是:

利夫卢夫

Swe*_*per 2

您需要的正则表达式是

\bl\wf\b
Run Code Online (Sandbox Code Playgroud)

解释:

由于你的单词必须是三个字符长,这意味着 l 和 f 之间只能有一个字母,所以这就是为什么我没有在那里放置量词。

你的正则表达式是错误的,因为

  • f{3}表示 3 个 f,总共不是 3 个字符长
  • .匹配所有内容,包括非单词字符。\w代替使用。