当前位置: 首页 > 面试题库 >

如何在Java中使用正则表达式找到确切的单词?

白嘉志
2023-03-14
问题内容

考虑以下代码片段:

String input = "Print this";
System.out.println(input.matches("\\bthis\\b"));

输出量

false

这种方法可能有什么问题?如果错了,那么找到确切的单词匹配的正确解决方案是什么?

PS:我在这里发现了许多类似的问题,但没有一个提供我正在寻找的解决方案。提前致谢。


问题答案:

当您使用该matches()方法时,它试图匹配整个输入。在您的示例中,输入 “ Print this” 与模式不匹配,因为单词 “ Print”
不匹配。

因此,您需要在正则表达式中添加一些内容以匹配字符串的初始部分,例如

.*\\bthis\\b

如果您也想在行尾添加多余的文本,请执行以下操作:

.*\\bthis\\b.*

或者,使用Matcher对象和使用Matcher.find(),以查找匹配 输入字符串:

    Pattern p = Pattern.compile("\\bthis\\b");
    Matcher m = p.matcher("Print this");
    m.find();
    System.out.println(m.group());

输出:

this

如果要在一行中找到多个匹配项,可以调用find()group()反复提取所有匹配项。



 类似资料:
  • 请考虑以下代码段: 输出 这种方法可能有什么问题?如果是错误的,那么找到精确匹配的单词的正确解决方案是什么? 附言:我在这里发现了许多类似的问题,但没有一个能提供我想要的解决方案。提前谢谢。

  • 问题内容: 在执行程序期间,我需要使用其他jar。我手动将罐子添加到相对的./lib文件夹中,然后执行程序。如何在清单文件中定义类路径? 问题答案: 您不能在清单的属性中使用正则表达式或其他通配符。 Java中仅支持一种通配符,并且仅当在命令行上在“手动” 调用(即,不使用)上指定时,该通配符才能使用:usingdirectoryname/*。

  • 本文向大家介绍如何在TestNG中使用正则表达式?,包括了如何在TestNG中使用正则表达式?的使用技巧和注意事项,需要的朋友参考一下 我们在TestNG中使用正则表达式来使用以某种模式命名的一组测试方法。 示例 Testng xml文件。 所有名称开头为Payment的测试方法都将从回归套件中排除。 示例 Login()将被执行,但是所有以名字Payment开头的方法都将被排除在执行之外。这是使

  • 问题内容: 谁能给我一个Java正则表达式来识别字符串中的重复字符?我只是在寻找立即重复的字符,它们可以是字母或数字。 例: abccde <-寻找此内容(立即重复c的内容) abcdce <-不是这个(c用另一个字符分隔) 问题答案: 尝试 在任何单词字符(字母,数字或下划线)和匹配无论是在第一组括号,一次或多次的比赛。因此,您可以匹配出现的任何一个单词字符,然后立即再次匹配一个或多个相同的单词

  • 本文向大家介绍Java正则表达式使用,包括了Java正则表达式使用的使用技巧和注意事项,需要的朋友参考一下 一:抓取网页中的Email地址 利用正则表达式匹配网页中的文本 将网页内容分割提取 打印结果: 867124664@qq.com 260678675@QQ.com 806208721@qq.com hr_1985@163.com 32575987@qq.com qingchen0501@12