如何为下面的模式应用正则表达式?

时间:2016-11-25 06:46:58

标签: regex

我有一些字符串数据, 我想应用正则表达式并从数据中过滤掉一些关键字。

对于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 ”。

1 个答案:

答案 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) );

  }
}

我认为你错过了什么