Voici votre première tentative regex:
% js
Rhino 1.7 release 2 2009 03 22
js> var x = '02-09-10, 20:19 (1 dagen geleden)';
js> x.replace(/(.+*)\(([0-9]{1,}) dagen geleden\)/g, '$2');
js: uncaught JavaScript runtime exception: SyntaxError: Invalid quantifier *
Comme quelqu'un l'a déjà mentionné, vous ne voulez pas que astérisque. Il suffit de se débarrasser de celui-ci:
js> x.replace(/(.+)\(([0-9]{1,}) dagen geleden\)/g, '$2');
1
Il y a le "1" que vous vouliez.
Mais vous pouvez améliorer cela. Pourquoi dire '[0-9] {1,}' quand '\ d +' signifie la même chose? Aussi, êtes-vous sûr qu'il n'y aura jamais de personnages au-delà de cette finale ")"? Y aura-t-il des espaces vagabonds, ou les espaces pourraient-ils être d'autres espaces blancs (un onglet, peut-être)? Si vous voulez vraiment que ce nombre avant « Dagen geleden » Je l'écris comme ceci:
js> x = x.match(/\((\d+)\s+dagen\s+geleden\)/)[1];
1
Il attrapera ce numéro même si votre chaîne a garbage inattendue:
js> "garbage (255 dagen geleden) more garbage".match(/\((\d+)\s+dagen\s+geleden\)/)[1];
255
Merci! Je n'ai pas pensé à ça !! C'est en effet toujours dans le format que j'ai dit, donc, c'est plus rapide! – dododedodonl