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

正则表达式使用Java模式匹配字符串中的四个重复字母

双元魁
2023-03-14
问题内容

我想匹配aaaa,aaaad,adjjjjk之类的内容。类似于([az])\ 1+的字符被用来匹配重复的字符,但是我无法用四个字母来解决这个问题。


问题答案:

不知道有限重复语法,您自己的问题解决能力应带您前往:

([a-z])\1\1\1

显然,它并不漂亮,但是:

  • 有用
  • 它锻炼您自己的问题解决能力
  • 它可能会导致您对概念有更深入的了解
    • 在这种情况下,了解有限重复语法的简化形式

我有一个担忧:

  • "ffffffff".matches("([a-z])\\1{3,}") = true
  • "fffffasdf".matches("([a-z])\\1{3,}") = false
  • "asdffffffasdf".matches("([a-z])\\1{3,}") = false

下两个我该怎么办?

问题是在Java中,matches需要匹配整个字符串;好像该模式被^和包围$

不幸的是,没有String.containsPattern(String regex),但是您始终可以使用以下技巧来围绕模式.*

"asdfffffffffasf".matches(".*([a-z])\\1{3,}.*") // true!
//                         ^^              ^^


 类似资料:
  • 问题内容: 我正在尝试创建一个匹配字符串的正则表达式,如果它连续有3个或多个重复字符(例如aaaaaa,testtttttt,otttttter)。 我尝试了以下方法: 连续 匹配 任意 3个字符,但不 连续的 字符…我在哪里出错? 问题答案: 您要的内容无法使用 真正的 正则表达式完成,您需要的是(不规则的)反向引用。尽管许多正则表达式引擎实现了它们,但Go使用的RE2却没有。RE2是一种快速的

  • 问题内容: 我有一个输入字符串。 我正在考虑如何有效地将此字符串与多个正则表达式匹配。 我想针对这些正则表达式模式进行匹配,如果其中至少一种匹配则返回: 我不确定如何一次匹配多种模式。有人可以告诉我我们如何有效地做到这一点吗? 问题答案: 如果只有几个正则表达式,并且在编译时都知道它们,那么这就足够了: 如果它们更多,或者它们在运行时加载,则使用模式列表:

  • 问题内容: 我在尝试将我的javascript regex经验转移到Python时遇到了麻烦。 我只是想让它工作: …但是它打印无。如果我做: 它匹配…默认情况下是否匹配字符串的开头?当匹配时,如何使用结果? 我如何进行第一场比赛?是否有比python网站提供的文档更好的文档? 问题答案: 隐式添加到您的正则表达式的开头。换句话说,它仅在字符串的开头匹配。 将在所有位置重试。 一般来说,建议您在需

  • 问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)

  • 问题内容: 我有一个正则表达式字符串数组。其中之一必须与给定java文件中找到的任何字符串匹配。 这是我到目前为止拥有的正则表达式字符串: 但是,即使字符串内的引号被转义,该字符串也会被拒绝。我认为,无论字符串是否转义,当在字符串中找到引号时,我都会立即拒绝它。我需要它接受带转义引号的字符串文字,但它应该拒绝。 问题答案: 在Java中,您可以使用此正则表达式匹配和之间的所有转义引号: 使用的正则

  • 问题内容: 在Swift中,查看字符串是否与模式匹配的简单方法是什么? 伪代码示例: (我已阅读斯威夫特文档并没有看到一个正则表达式的能力。我读过有关增加一个新的运营商是一个好主意,但不是我想,因为这是一个教学项目。我已经尝试了更复杂的,但收到错误:“字符串”没有成员“ rangeOfString”。我正在寻找一种Swift解决方案,即未键入NSRegularExpression。我不需要对匹配结