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

使用正则表达式提取Java中的值

宦子琪
2023-03-14
问题内容

我有一些粗略的字符串:

[some text] [some number] [some more text]

我想使用Java Regex类提取[some number]中的文本。

我大致知道我想使用什么正则表达式(尽管欢迎所有建议)。我真正感兴趣的是Java调用以获取正则表达式字符串并将其用于源数据以产生[some number]的值。

编辑:我应该补充一点,我只对单个[一些数字](基本上是第一个实例)感兴趣。源字符串很短,我不会寻找[some number]的多次出现。


问题答案:

完整示例:

private static final Pattern p = Pattern.compile("^([a-zA-Z]+)([0-9]+)(.*)");
public static void main(String[] args) {
    // create matcher for pattern p and given string
    Matcher m = p.matcher("Testing123Testing");

    // if an occurrence if a pattern was found in a given string...
    if (m.find()) {
        // ...then you can use group() methods.
        System.out.println(m.group(0)); // whole matched expression
        System.out.println(m.group(1)); // first expression from round brackets (Testing)
        System.out.println(m.group(2)); // second one (123)
        System.out.println(m.group(3)); // third one (Testing)
    }
}

由于你要查找第一个数字,因此可以使用以下正则表达式:

^\D+(\d+).*

m.group(1)会返回你的第一个电话号码。请注意,带符号的数字可以包含减号:

^\D+(-?\d+).*


 类似资料:
  • 问题内容: 我有这串 并且我需要提取这3个子字符串 1234 06:30 07:45 如果我使用此正则表达式\\ d {2} \:\\ d {2}我只能提取第一个小时的06:30 matcher.group(1)引发异常。 另外我也不知道如何提取1234。此字符串可以更改,但总是在’XX〜’之后 。您对如何将这些字符串与正则表达式匹配有任何想法吗? 更新 多亏了亚当的建议,我现在有了这个正则表达式

  • 问题内容: 我需要从字符串中提取: 使用Java语言中的正则表达式。 有人可以帮帮我吗?我是第一次使用正则表达式。 问题答案: 尝试

  • 问题内容: 我有这样的字符串: 而且我只需要使用regexp的href值提取: 每次的href值也可以不同,可以更长或更短 问题答案: 假设myString包含带有元素的字符串。 由于href属性不能嵌套,因此应该没问题,并且不需要完整的HTML解析器。一个限制是它只能在双引号中找到href属性。

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

  • 本文向大家介绍正则表达式提取img的src,包括了正则表达式提取img的src的使用技巧和注意事项,需要的朋友参考一下 要匹配的字符串:<img src=image/ad1.gif width="128" height="36"/><img src='image/ad2.gif' width="128" height="36" /> 正则表达式:<img[\s]+src[\s]*=[\s]*(([

  • 我有一个正则表达式来从完整命令中提取脚本名。它适用于大多数情况,但不适用于示例数据中的第一行。 抽样资料 输出应该是 正则表达式不适用于第一行 https://regex101.com/r/cFjn85/1