Matlab - comment remplacer tous les caractères spéciaux dans un vecteur?
Est-il possible de remplacer tous les caractères spéciaux dans un matlab vecteur à travers une expression régulière?
Merci
*EDIT: *
Je vous remercie pour vos réponses. Je suis en train de réaliser ce qui suit. J'ai un fichier texte qui contient quelques paragraphes à partir d'un roman. J'ai lu ce fichier dans un vecteur.
fileText = ['Token1,' 'token_2' 'token%!3'] etc.
Dans ce cas , _ % ! sont les caractères spéciaux et je voudrais les remplacer par des espaces ("). Cela peut-il être atteint grâce à des expressions régulières? Je peux le faire avec du javascript, mais ne pouvez pas l'obtenir pour travailler dans Matlab.
Merci
Pouvez-vous expliquer un peu plus clairement ce que tu veux dire ? Peut-être nous donner un exemple ?
Qu'entendez-vous par "caractères spéciaux"?
En fonction de ce que vous entendez par "caractères spéciaux", vous pouvez utiliser la fonction ISSTRPROP: mathworks.com/help/techdoc/ref/isstrprop.html Il est possible de tester des lettres, des chiffres, des espaces, des caractères de contrôle, ...
Merci pour les réponses, pleasee voir la modifier.
Qu'entendez-vous par "caractères spéciaux"?
En fonction de ce que vous entendez par "caractères spéciaux", vous pouvez utiliser la fonction ISSTRPROP: mathworks.com/help/techdoc/ref/isstrprop.html Il est possible de tester des lettres, des chiffres, des espaces, des caractères de contrôle, ...
Merci pour les réponses, pleasee voir la modifier.
OriginalL'auteur | 2010-10-07
Vous devez vous connecter pour publier un commentaire.
Si par "caractères spéciaux" tu veux dire que moins fréquemment utilisé Unicode personnages comme
¥
,¶
, ou¼
, alors vous pouvez utiliser la fonction REGEXPREP ou l'ensemble des fonctions de comparaison comme ISMEMBER (et vous pouvez convertir la chaîne de caractères à son équivalent en entier le premier code à l'aide de la fonction DOUBLE si nécessaire). Voici quelques exemples où tous, mais le standard anglais lettres de l'alphabet (minuscules et en majuscules) sont supprimés à partir d'une chaîne:Toutes les options ci-dessus produisent le même résultat:
EDIT:
En réponse à l'exemple dans la mise à jour de question, voici comment vous pouvez utiliser REGEXPREP pour remplacer tous les caractères qui ne sont pas
a-z
,A-Z
, ou0-9
avec des blancs:Cela peut être plus facile que d'essayer d'écrire une regex pour correspondre à chaque caractère spécial, car il peut éventuellement être beaucoup d'entre eux. Toutefois, si vous avez été certains que les seuls caractères spéciaux serait
_
,%
, et!
, ce qui devrait atteindre le même que ci-dessus:Aussi, comme mentionné dans le commentaire par Amro, vous pouvez également utiliser la fonction ISSTRPROP pour remplacer tous les caractères non alphanumériques avec des blancs comme suit:
Vous avez raison. J'ai oublié de briser la gamme de pièces. Aussi, bonne suggestion sur l'utilisation de ISMEMBER directement sur les chaînes de caractères. Je ne savais pas que quelque chose comme
'A':'Z'
restera un tableau de caractères au lieu d'être converties automatiquement en double.Je pense que regexprep est ce que je suis après. Au lieu de faire " [A-Za-z]' j'ai construit une regexp pour tous les caractères spéciaux. Cela n'a pas fonctionné pour moi. Je vais exécuter votre code en une minute.
Merci pour votre aide!
OriginalL'auteur gnovice