正则表达式在java中查找字符串中的特定单词

我需要一些正则表达式的帮助:我试图检查一个句子是否包含一个特定的单词。

让我们以此主题的标题为例:

“正则表达式在字符串中查找特定单词”

我需要找到它是否包含单词if ,在这种情况下它是假的。

我不能使用方法contains,因为在这种情况下它会返回true(spec * if * ic)

我正在考虑使用方法匹配,但我有点正规表达式的菜鸟。

基本上,匹配方法的输入中的正则表达式需要指定正在查找的单词之前和单词后面的字符不是字母的(因此它不能包含在该单词中)或该单词位于句子的开头或结尾

非常感谢!

使用以下正则表达式:

".*\\bif\\b.*" 

\b匹配单词边界。

熟悉正则表达式可以解决您的任务

在你的情况下

 String str = "Regex to find a specific word in a string in java" str.matches(".*?\\bif\\b.*?"); \\ return false String str1 = "print a word if you found" str1.matches(".*?\\bif\\b.*?"); \\ return true 

一个简短的解释:

。 匹配任何角色,

*? 是零次或多次,

\ b是单词边界。

正则表达式的一个很好的解释可以在这里找到

使用它来匹配字符串中的特定单词:

  String str="Regex to find a specific word in a string"; System.out.println(str.matches(".*\\bif\\b.*")); //false System.out.println(str.matches(".*\\bto\\b.*")); //true