繁体   English   中英

如何在Java中使用正则表达式提取包含数字和字符的字符串

[英]How do i extract a string containing digits and characters, using regex in java

我有可变数据,我想提取一个长度为6个字符的字符串(包含数字和字符)。

Sample_data =您的设置地址为6B1BC0 TSTSB NFPSNC92

Sample_data2 =您的设置地址为3EC810 P-22A LS02 STA-0213 TSTSA

我的样本数据的所有字符串都是可变的,除了“ YOUR SET ADDRESS IS”

我需要提取这6个字符的长字符串:“ 6B1BC0”和“ 3EC810”

这是我尝试做过的事情,但没有返回任何东西。 我如何修改它以返回“ 6B1BC0”

Pattern P = pattern.compile(“YOUR SET ADDRESS IS \\w+ ([A-Z0-9]{6})”);
Matcher n = p.matcher(result);
If(n.find())
{
    return n.group(0);
}
Pattern P = pattern.compile(“YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})”);

关于"YOUR SET ADDRESS IS ( [A-Z0-9]{6})*"

你快到了。 将模式固定为:

Pattern P = pattern.compile("YOUR SET ADDRESS IS ([A-Z0-9]{6})");

要么

Pattern P = pattern.compile("YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})");

工作程序:

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;

class Test
{
  public static void main (String[] args) throws java.lang.Exception
  {
    Pattern p = Pattern.compile("YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})");
    Matcher n = p.matcher("YOUR SET ADDRESS IS 123456 FOO");
    if (n.find()) {
      System.out.println(n.group(1)); // Prints 123456
    }
  }
}
Pattern p = Pattern.compile("^[a-zA-Z]+([0-9]+).*");
Matcher m = p.matcher("aTesting123anythingTesting");

if (m.find()) {
    System.out.println(m.group(1));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM