Maison > Questions et réponses > le corps du texte
Par exemple, j'ai maintenant une chaîne "@3131 @aba21bas @zxcc@213wd cccaf21212"
Je souhaite maintenant extraire tous les caractères entre @ et les espaces dans cette chaîne
Le résultat de l'extraction de chaîne ci-dessus devrait être 3131, aba21bas, zxcc@213wd
Comment cette expression régulière doit-elle être écrite ? ? (méthode d'écriture js)
某草草2017-06-07 09:25:17
La méthode match dans js ne peut pas obtenir les résultats de regroupement en mode normal/g. Par exemple, le @ et les espaces ne peuvent pas être supprimés de ces résultats :
"@3131 @aba21bas @zxcc@213wd cccaf21212".match(/@([^\s]*?)\s/g)
// ["@3131 ", "@aba21bas ", "@zxcc@213wd "]
Vous pouvez donc le remplacer par la méthode reg.exec, par exemple :
function pick(str){
var reg = /@([^\s]*?)\s/g, ret = [];
while(arr = reg.exec(str)) ret.push(arr[1]);
return ret;
}
pick("@3131 @aba21bas @zxcc@213wd cccaf21212" )