当前位置: 首页 > 知识库问答 >
问题:

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

洪伟兆
2023-03-14

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

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

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

我需要找出它是否包含if这个词,在这个例子中它是假的。

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

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

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

谢谢!

共有3个答案

鲁华皓
2023-03-14

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

   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
华泳
2023-03-14

对正则表达式有很好的了解可以解决你的任务

在你的情况下

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是一个词的边界。

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

澹台鸿光
2023-03-14

使用以下正则表达式:

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

\b匹配单词边界。

 类似资料:
  • 问题内容: 我需要有关正则表达式的帮助:我正在尝试检查一个句子是否包含特定单词。 让我们以这个主题的标题为例: “正则表达式以查找字符串中的特定单词” 我需要查找它是否包含 if ,在这种情况下它是错误的。 我无法使用包含的方法,因为在这种情况下它将返回true( 如果为 * ic, 则为 spec * ) 我当时在考虑使用方法匹配,但我有点正则表达式。 基本上,匹配方法输入中的正则表达式需要指定

  • 我有一个HashMap,里面有键和值。我想用字符串中映射的值替换键。 在字符串中,键被写成@keyname或@“keyname”,这些应替换为map.get(“keyname”) 假设我们的地图是这个 所以如果我们处理字符串“Hello world,Iam@key1 years old.”,它将变成“Hello world,Iam 2 years old.”。 我们可以用@“key1”代替@key

  • 我想使用正则表达式屏蔽字符串的子字符串。 字符串输入=

  • 我需要一个字符串来获取键->值对的数组(2-dim)。 一个“匹配”是当两个单词之间有一个->时,->前后有mo空格 例如输入字符串: skip_me key1->value1 key2->value2 skip_me2 key3->value3 skip_me3 skip_me->还 结果应为数组: key1,value1 key2,value2 key3,value3 这是我的代码: 我的正则

  • 我想使用正则表达式屏蔽字符串的子字符串。 字符串输入=

  • 问题内容: 我想用以下代码查找字符串中的所有数字: 我还尝试将定界符添加到正则表达式,使用正数作为的第二个参数,使用仅数字字符串,例如“ 123”作为第一个参数… 但是输出总是 我似乎想念一下正则表达式在Go中的工作原理,但是无法绕开它。这不是有效的表达方式吗? 问题答案: 问题出在你的第二个整数参数上。引用以下软件包的文档: 这些例程使用一个额外的整数参数n;如果n> = 0,则该函数最多返回n