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

正则表达式获取字符串中其他字符的第一个数字

宫铭
2023-03-14
问题内容

我是正则表达式的新手,并且想知道如何才能只获取字符串中的第一个数字,例如100 2011-10-20 14:28:55。在这种情况下,我希望它返回100,但是数字也可以更短或更长时间。

我在考虑类似的东西[0-9]+,但它会将每个数字分别分开(100,2001,10,…)

谢谢。


问题答案:

尝试以下操作以匹配字符串中的第一个数字(该数字不能位于字符串的开头):

    String s = "2011-10-20 525 14:28:55 10";
    Pattern p = Pattern.compile("(^|\\s)([0-9]+)($|\\s)");
    Matcher m = p.matcher(s);
    if (m.find()) {
        System.out.println(m.group(2));
    }


 类似资料:
  • 问题内容: 我发现了非常相似的帖子,但是我在这里不能完全得到正则表达式。 我正在尝试编写一个正则表达式,该表达式返回一个位于其他两个字符串之间的字符串。例如:我想获取字符串“ cow”和“ milk”之间的字符串。 我的牛总是喂牛奶 会回来 “总是给” 到目前为止,这是我拼凑的表达方式: 但是,这将返回字符串“牛总是给”。 问题答案: 前瞻(该部分)不消耗任何输入。这是一个 零宽度的断言 (边界检

  • 问题内容: 我需要一个匹配但不匹配的正则表达式 我希望它只匹配foo及其周围的所有内容,只要不跟在bar后面即可。 我尝试使用此方法:这是相当接近的,但它匹配。负面的眼光需要匹配任何东西,而不仅仅是障碍。 我使用的特定语言是Clojure,它在后台使用Java正则表达式。 编辑:更具体地说,我也需要它通过但不是。 问题答案: 尝试: 测试: 正则表达式说明 其他正则表达式 如果您只想排除紧接其后的

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 问题内容: 我有这个作业问题,需要使用正则表达式删除字符串中的所有其他字符。 在一部分中,我必须删除索引1,3,5,…处的字符,具体操作如下: 这是我想要的打印。本质上,我一次匹配两个字符,然后替换为第一个字符。我使用组捕获来做到这一点。 问题是,我在作业的第二部分遇到麻烦,我需要删除索引0、2、4,…处的字符。 我已经完成以下工作: 此打印,但正确答案必须是。仅当输入字符串的长度为奇数时,我的正

  • 我有一根这样的绳子 余额:“5048543747”,余额:“5119341413”,帐号:“0001000918”, 我使用了REGEX (.*?), 结果我收到的第一个子字符串是 余额:“5048543747” 实际上,我想要得到的结果是数组包括 { 余额:“5048543747” Baldefovd:“5119341413” 账号:“0001000918” } 有人能帮我吗。多谢。 编辑 我使

  • 问题内容: 我想获得正则表达式的第一场比赛。 在这种情况下,我得到了一个列表: [‘33’,‘44’] 我可以提取列表的第一个元素: ‘33’ 但这仅在至少有一个匹配项的情况下有效,否则我将收到错误消息: IndexError:列表索引超出范围 在这种情况下,我可以定义一个函数: 是否有一种无需定义新功能即可获得该结果的方法? 问题答案: 您可以通过添加默认值到您的正则表达式中: 也可以与其他人指