/ / Une exception se produit lors d'une tentative de correspondance sur un RegEx - java, regex

Une exception se produit lors de la tentative de correspondance sur un RegEx - java, regex

Je ne suis pas un expert RegEx et je ne fais que déboguer du code jUnit qui échoue.

Donc, si j'ai raison, c'est ce que nous transmettons:

##ALT=<ID=DEL:ME:ALU,Description="Deletion of ALU element">

et c'est la ligne de code que regex lèvera exception, mais je n'ai pas une connaissance approfondie de RegEx donc je me demandais si vous voyez quelque chose de mal avec cette expression?

pattern = Pattern.compile("((Description="[^"]*")>");

Que toi.

Réponses:

0 pour la réponse № 1

Tu pourrais essayer:

pattern = Pattern.compile("((Description="[^"]*")>)");

Dans votre cas, vous pouvez utiliser quelque chose comme ça pour faire correspondre votre chaîne:

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

Cela va imprimer: Description="Deletion of ALU element"


2 pour la réponse № 2

Votre expression régulière s'ouvre 2 ( et ferme seulement 1 ). C'est incomplet. Vous devez fermer une définition de groupe dans votre expression rationnelle, elle échouera probablement avec une exception d'analyse.