2016-11-25 6 views
-1

У меня есть строковые данные, Я хочу применить регулярное выражение и отфильтровать некоторые ключевые слова из данных.Как применить регулярное выражение для шаблона ниже?

Для ех, String Data:

new id for MS is amsd2a-bc-001-oa2 please provide more input etc.. 

Теперь я должен извлечь ID amsd2a-BC-001-OA2 из приведенной выше строки.

Я использую регулярное выражение (упомянутое ниже) для извлечения идентификатора из данных.

[a-zA-Z0-9]{3,6}-bc-[0-9]{3}-[A-Za-z]{2}[0-9] 

выше регулярное выражение работает, но его сопоставления идентификаторов как amsd2a-BC-001

как сделать это регулярное выражение, чтобы соответствовать только определенному шаблону. Ex: 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-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)); 

    } 
} 

Я думаю, что вам что-то не хватает

Смежные вопросы