Я не експерт RegEx і просто rtying для налагодження деякого коду jUnit, який не вдається.
Тож якщо я маю рацію, це те, що ми передаємо:
##ALT=<ID=DEL:ME:ALU,Description="Deletion of ALU element">
і це рядок коду, що регулярний вираз буде кидати виняток, але у вас немає глибоких знань про RegEx, тому мені було цікаво, чи бачите ви щось не так у цьому виразі?
pattern = Pattern.compile("((Description="[^"]*")>");
Ніж ви.
Відповіді:
0 для відповіді № 1Ви можете спробувати:
pattern = Pattern.compile("((Description="[^"]*")>)");
У вашому випадку ви можете використовувати щось подібне, щоб відповідати рядку:
Pattern pattern = Pattern.compile(".*(Description="[^"]*")>");
Matcher matcher = pattern.matcher("##ALT=<ID=DEL:ME:ALU,Description="Deletion of ALU element">");
matcher.matches();
System.out.println(matcher.group(1));
Це буде роздруковано: Description="Deletion of ALU element"
2 для відповіді № 2
Ваш регекс відкриється 2 (
і закривається просто 1 )
. Це неповно. Ви повинні закрити визначення групи у своєму регексе, воно, мабуть, не вдасться за винятком розбору.