繁体   English   中英

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

[英]Regex to find a specific word in a string in 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM