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

在Java中查找字符串中第一次出现的前8位数字的正则表达式

狄兴业
2023-03-14

这是我的String 20161011,我想得到第一个String 20161011。

我正在使用(^|\\s)([0-9])($ | \ \ s),但是它不工作,有人能建议正确的用法吗,顺便说一下,我想检索的第一个字符串是yyyymmdd格式的日期,我不需要验证日期格式,因为它是预先验证的。

共有3个答案

章岳
2023-03-14

这是你如何实现的,

    Pattern r = Pattern.compile("\\d{8}+");
    Matcher m = r.matcher("12345678.231610.01234567");
    String str = "";
    if (m.find()) {
        // Only stores first occurence, occuring at any index of string.
        str = m.group();
    }
贺浩漫
2023-03-14

正则表达式 $(\d{8})\. 将适用于您的示例。但是,您可能真的想按照此答案中所述拆分字符串。这将使您可以访问每个数字,而不仅仅是第一个数字。它可能也快一点。

云新知
2023-03-14

这应该能让你得到你想要的:

^([0-9]{8}).*
  • ^:匹配行首
  • ([0-9]{8}):匹配并捕获前8个数字
  • .*:匹配字符串的其余部分,但不捕获它。(你可能不需要这个部分)
 类似资料:
  • 问题内容: 给我们一个字符串,说一个子字符串,说。我需要找到字符串在原始字符串中第二次出现时的索引。 在这种情况下将返回2。在这种情况下,我希望输出为10。 问题答案: 使用的重载版本,它将起始索引(fromIndex)作为第二个参数:

  • 我们得到一个字符串,比如说< code >“it whatis”,以及一个子字符串,比如说< code >“is”。当字符串< code >“is”在原始字符串中第二次出现时,我需要找到< code >“I”的索引。 在这种情况下将返回2。我希望在这种情况下输出为10。

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

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

  • 问题内容: 我有一个字符串,它是html页面的完整内容,我正在尝试查找的第二次出现的索引。有人对如何实现这一目标有任何建议吗? 问题答案: 这是一个好玩的镜头;)

  • 我需要一些正则表达式方面的帮助:我正在尝试检查一个句子是否包含特定的单词。 让我们以本主题的标题为例: “在字符串中查找特定单词的正则表达式” 我需要找出它是否包含if这个词,在这个例子中它是假的。 我不能使用方法包含,因为它在这种情况下会返回true(规范*if*ic) 我在考虑使用matches方法,但我对正则表达式有点不在行。 基本上,匹配方法的输入中的正则表达式需要指定在我要查找的单词之前