J'essaie de diviser une chaîne par son espace, mais gardez tous les caractères d'espacement échappés.

Exemple de ligne:

/etc/space\ in\ folder\ name/files  /mnt/files  none    defaults    0   0

Je veux diviser cela par l'espace blanc (tabulation ou espaces) tout en gardant les caractères d'espacement échappés (\ ) comme un seul élément.

Donc, dans ce cas, il le diviserait en 6 éléments.

Comment puis-je atteindre cet objectif?

0
cclloyd 22 févr. 2021 à 19:52

1 réponse

Meilleure réponse

Une expression régulière peut correspondre à n'importe quel caractère échappé, ou tout caractère qui n'est pas un espace:

const str = String.raw`/etc/space\ in\ folder\ name/files  /mnt/files  none    defaults    0   0`;
console.log(
  str.match(/(?:\\.|\S)+/g)
);
1
CertainPerformance 22 févr. 2021 à 16:54