首页 文章

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

提问于
浏览
2

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

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

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

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

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

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

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

非常感谢!

3 回答

  • 2

    使用以下正则表达式:

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

    \b 匹配单词边界 .

  • 13

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

    在你的情况下

    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

  • 6

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

    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
    

相关问题