Comment puis-je fractionner la chaîne [email protected]@@[email protected]@@someval3
pour obtenir le tableau de résultats en tant que
['somekey', '@', 'someval', '@@', 'somekey2', '@@@', 'someval3']
?JavaScript RegExp diviser séparateurs de maintien
Répondre
Vous pouvez essayer l'extrait suivant, il vous permet de diviser et de capturer n'importe quel jeton
var str = '[email protected]@@[email protected]@@so>>meval3!!split&&me%hello#world';
var result = str.split(/([^\w]+)/);
console.log(result);
Cela devrait fonctionner:
var myString = '[email protected]@@[email protected]@@someval3';
var splits = myString.split(/\b/);
\b
signifie limite de mot ici.
non, j'ai besoin modèle concret. La chaîne peut contenir '>>' ou '>' ou '@@' ou des espaces et je veux que chaque entité se scinde à sa place dans le tableau – Herrgott
Si vous voulez séparer et/ou capturer '>>' ou '>' , alors s'il vous plaît ajouter cette information à votre question, ainsi que des informations sur la façon dont vous voulez gérer les espaces. –
Solution trouvée. Pour diviser @@
et @
comme séparateurs différents dont vous avez besoin /(@@|@)/g
Ou vous pourriez juste utiliser '/ (@ +) /' comme suggéré initialement dans un commentaire. – nnnnnn
Vous pouvez utiliser String.prototype.match()
avec RegExp
/\w+|[^\w]+/g
pour correspondre à un ou plusieurs caractères de mots ou un ou plusieurs caractères qui ne sont pas des caractères mot
var str = "[email protected]<<[email protected]@@someval3 somekey4####someval5";
var res = str.match(/\w+|[^\w]+/g);
console.log(res);
Quelle partie vous coincé sur? Comment faire correspondre un ou plusieurs caractères @, ou comment les faire apparaître dans le tableau de sortie? [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split) a un exemple de ce dernier. – nnnnnn
lorsque vous divisez des choses, vous perdrez le délimiteur –
@ A.Lau - Seulement si vous voulez. '.split()' peut le faire de toute façon. – nnnnnn