2016-11-25 65 views
-1

我有一些字符串数据, 我想申请一个正则表达式,并从数据中筛选出一些关键字。如何应用以下模式的正则表达式?

对于离,字符串数据:

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

你在什么环境?您的示例在[此工具](http://regexr.com/)中按预期工作。 – Ouroborus

+0

如果这是一个问题,它会捕获“amsd2a-bc-001-oa2-oa2”之类的东西,而不是像“amsd2a-bc-001”。 –

回答

0

我检查了在Java中提到的字符串和正则表达式。 我为 'amsd2a-BC-001-OA 2'

下面是我使用的代码正确的输出:

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

    } 
} 

我想你错过了什么