希望做得好..我正在尝试删除不匹配的数据,同时使用 java 与正则表达式进行比较。我的要求是这样的。我的正则表达式是:
([A-Z]{5}[0-9]{4}[A-Z])(XM|XD|EM|ED)([0-9]{3})(_PRA_)([0-9]{3})
它应该接受这样的字符串:
SHIVA1234AXM123_PRA_123
但是在这种情况下,如果我给出任何东西aaSHIVA1234AXM123_PRA_123aa
(或)SHIVA1234AXccccM123_PRA_123
像这种方法应该给出aaaa
(或)cccc
这样。我尝试了以下代码:
public class ExpressionDemo {
public static void main(String[] args) {
String regex = "([A-Z]{5}[0-9]{4}[A-Z])(XM|XD|EM|ED)([0-9]{3})(_PRA_)([0-9]{3})";
Pattern p = Pattern.compile(regex);
String str="SHIVA1234AXM123_PRA_123";
Matcher m = p.matcher(str);
System.out.println(m.groupCount());
for(int i=1;i<=m.groupCount();i++)
{
int start=0;
int end=0;
System.out.println("count "+i);
if(m.lookingAt())
{
System.out.println(m.group(i));
System.out.println("start of group"+m.start(i));
System.out.println("end of group"+m.end(i));
start=m.start(i);
end=m.end(i);
m.reset();
}
else
{
System.out.println("ELSE");
System.out.println(start);
System.out.println(end);
}
}
}
}
这是针对正面案例,但我需要针对虚假案例。它应该是通用的任何表达式--->字符串。