我有一些字符串数据, 我想应用正则表达式并从数据中过滤掉一些关键字。
对于ex,字符串数据:
new id for MS is amsd2a-bc-001-oa2 please provide more input etc..
现在我必须从上面的字符串中提取ID amsd2a-bc-001-oa2 。
我正在使用正则表达式(如下所述)从数据中提取ID。
[a-zA-Z0-9]{3,6}-bc-[0-9]{3}-[A-Za-z]{2}[0-9]
以上正则表达式正在运行,但其匹配的ID如 amsd2a-bc-001
如何使此正则表达式仅匹配特定模式。 例如:RegEx匹配“ amsd2a-bc-001-oa2 ”但不匹配“ amsd2a-bc-001 ”。
答案 0 :(得分:0)
我在Java中检查了提到的字符串和正则表达式。 我得到了正确的输出'amsd2a-bc-001-oa2'
以下是我使用的代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class MyClass {
public static void main( String args[] ) {
// String to be scanned
String line = "nnew id for MS is amsd2a-bc-001-oa2 please provide more input etc";
String pattern = "[a-zA-Z0-9]{3,6}-bc-[0-9]{3}-[A-Za-z]{2}[0-9]";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
m.find( );
System.out.println("Found value: " + m.group(0) );
}
}
我认为你错过了什么