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

时间:2014-02-13 17:21:10

标签: java regex

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

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

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

我的样本数据的所有字符串都是可变的,除了"你的设置地址是"

我需要提取这个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);
}

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

"YOUR SET ADDRESS IS ( [A-Z0-9]{6})*"怎么样。

答案 2 :(得分:0)

你快到了。将您的模式修复为:

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
    }
  }
}

答案 3 :(得分:0)

Pattern p = Pattern.compile("^[a-zA-Z]+([0-9]+).*");
Matcher m = p.matcher("aTesting123anythingTesting");

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