我有可变数据,我想提取一个长度为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);
}
答案 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));
}