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

如何在Java中的String.contains()方法中使用正则表达式

桑坚
2023-03-14
问题内容

我想检查一个字符串是否按顺序包含单词“ stores”,“ store”和“ product”,无论它们之间是什么。

我尝试使用someString.contains(stores%store%product);并且.contains("stores%store%product");

我是否需要显式声明一个正则表达式并将其传递给方法,还是完全不能传递正则表达式?


问题答案:

String.contains

String.contains与字符串,句点一起使用。它不适用于正则表达式。它将检查指定的确切字符串是否出现在当前字符串中。

注意String.contains不检查单词边界。它只是检查子字符串。

Regex solution

正则表达式比强大String.contains,因为你可以对关键字(除其他事项外)执行单词边界。这意味着你可以将关键词搜索为单词,而不仅仅是子字符串。

使用String.matches具有以下正则表达式:

"(?s).*\\bstores\\b.*\\bstore\\b.*\\bproduct\\b.*"

RAW正则表达式(删除字符串文字中的转义符-这是在打印出上面的字符串时所得到的):

(?s).*\bstores\b.*\bstore\b.*\bproduct\b.*

\b一个字边界检查,这样你就不会得到匹配restores store products。请注意stores 3store_product,由于数字和_被认为是单词的一部分,因此也被拒绝,但是我怀疑这种情况会出现在自然文本中。

由于双方都检查了单词边界,因此上面的正则表达式将搜索确切的单词。换句话说,stores stores product将与上面的正则表达式不匹配,因为你要搜索的单词store没有s。

.通常匹配除 许多换行符以外的任何字符。(?s)一开始会.毫无例外地匹配任何字符(感谢蒂姆·皮茨克克(Tim Pietzcker)指出这一点)。



 类似资料:
  • 本文向大家介绍在JavaScript的正则表达式中使用exec()方法,包括了在JavaScript的正则表达式中使用exec()方法的使用技巧和注意事项,需要的朋友参考一下  exec方法为正则表达式匹配的文本搜索字符串。如果找到匹配,则返回结果数组; 否则,返回null。 语法 下面是参数的详细信息:     string : 要搜索的字符串 返回值: 如果找到一个匹配,如果不为空,则返回匹配

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

  • 本文向大家介绍在Java编程中使用正则表达式的基本方法,包括了在Java编程中使用正则表达式的基本方法的使用技巧和注意事项,需要的朋友参考一下 众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。  大 家都知道,正则表达式是一种可以用于

  • 问题内容: 我试图使用spannableString和正则表达式在Android中使用此函数为字符串的一部分上色: 因为函数replace()返回一个字符串,所以我无法获得彩色的字符串。我的问题是:使用正则表达式为文本上色的最佳方法是什么? 问题答案: 9月10日更新-更改所有出现的目标字符串 这样的通用方法将起作用: 。

  • 问题内容: 我正在尝试实现一个接受字符串列表的Web服务,每个字符串都是一个正则表达式。需要将这些与数据库的六列进行比较,并且需要返回任何匹配的行。 我相信Oracle具有我可以使用的regexp_like()函数,但是我正在寻找使用Hibernate做到这一点的 最佳 方法,因此,我不反对持久性引擎。 我从这样的东西开始,其中参与者集合包含正则表达式: 这是行不通的,因为“输入”不会执行我想要的

  • 问题内容: 我正在使用这样的构造: 但是我需要选择所有以“某些文本”开头的文本的链接,所以我想知道这里是否可以使用regexp?在lxml文档中找不到任何内容 问题答案: 您可以执行此操作(尽管该示例不需要正则表达式)。Lxml支持来自EXSLT扩展功能的正则表达式。(请参阅XPath类的lxml文档,但该方法也适用于该方法) 请注意,您需要提供名称空间映射,以便它知道xpath表达式中的“ re