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

时间:2013-08-17 14:37:27

标签: java regex

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

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

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

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

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

我正在考虑使用方法匹配,但我对正则表达式有点不同。

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

非常感谢!

3 个答案:

答案 0 :(得分:13)

使用以下正则表达式:

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

\b匹配字边界。

答案 1 :(得分:6)

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

在你的情况下

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是单词边界。

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

答案 2 :(得分:2)

使用此选项匹配字符串中的特定单词:

   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