Supposons que j'ai une chaîne '[email protected]'
. Je veux stocker la chaîne avant et après "@" dans 2 chaînes séparées. Quelle serait la méthode la plus simple pour trouver le caractère "@" ou d'autres caractères dans la chaîne?Recherche d'un caractère spécifique dans une chaîne dans Matlab
Répondre
J'ai utilisé strtok et strrep de Matlab à la place.
Pour « plus facile »,
>> email = '[email protected]'
email =
[email protected]
>> email == '@'
ans =
Columns 1 through 13
0 0 0 0 0 0 0 1 0 0 0 0 0
Columns 14 through 19
0 0 0 0 0 0
>> at = find(email == '@')
at =
8
>> email(1:at-1)
ans =
johndoe
>> email(at+1:end)
ans =
hotmail.com
Il serait un peu plus compliqué si vous cherchez quelque chose avec plus d'un caractère, ou vous n'êtes pas sûr s'il y avait exactement un @, et que cas MATLAB a beaucoup de fonctions pour rechercher dans le texte, y compris les expressions régulières (voir doc regexp
).
STRTOK et une opération d'index devrait faire l'affaire:
str = '[email protected]';
[name,address] = strtok(str,'@');
address = address(2:end);
Ou la dernière ligne pourrait aussi être:
address(1) = '';
TEXTSCAN fonctionne aussi.
str = '[email protected]';
parts = textscan(str, '%s %s', 'Delimiter', '@');
renvoie une matrice de cellules où les pièces {1} est 'johndoe' et des parties {2} est 'hotmail.com'.
Vous pouvez utiliser strread:
str = '[email protected]';
[a b] = strread(str, '%s %s', 'delimiter','@')
a =
'johndoe'
b =
'hotmail.com'
note: les versions récentes de MATLAB recommandent d'utiliser 'textscan' au lieu de' strread' – Amro
Chaîne email = "[email protected]";
String a[] = email.split("@");
String def = null;
String ghi = null;
for(int i=0;i<a.length;i++){
def = a[0];
ghi = a[1];
}
Ce n'est pas la bonne langue. – Lukas
Si ce thread n'est pas complètement énuméré maintenant, puis-je en ajouter un autre? Une fonction de base Matlab perl pratique:
email = '[email protected]';
parts = regexp(email,'@', 'split');
parties est une matrice de cellules à deux éléments similaires à la mise en œuvre de MTRW de textscan. Peut-être exagéré, mais regexp est beaucoup plus utile lorsque vous divisez une chaîne par plusieurs caractères de délimitation ou par recherche de motif. Le seul inconvénient est l'utilisation d'expressions régulières que je n'ai toujours pas maîtrisées après 15 ans de codage.
+1 étrange que personne n'a mentionné les expressions régulières tout ce temps :) – Amro
- 1. Recherche d'une combinaison d'octets spécifique dans NVARCHAR
- 2. Recherche de caractères indésirables dans une chaîne
- 3. Recherche de jetons dans une chaîne Java
- 4. Remplacer un caractère avec une chaîne dans LaTeX
- 5. Recherche d'un élément spécifique dans un NSArrayController
- 6. RegEx pour dire si une chaîne ne contient pas un caractère spécifique
- 7. Comment trouver l'avant-dernière occurrence d'un caractère dans une chaîne?
- 8. Comment répéter un caractère n fois dans une chaîne?
- 9. Comment diviser une chaîne avec le caractère majuscule dans l'iPhone
- 10. Insérer une chaîne après un certain caractère dans Ruby
- 11. Comment ajouter un caractère dans une chaîne (en utilisant vC++)?
- 12. asp.net Caractère invalide dans une chaîne Base-64
- 13. REGEX: remplacer un caractère spécifique après l'apparition d'un autre personnage dans la chaîne
- 14. IMAP Recherche avec « caractère
- 15. Recherche d'une date spécifique
- 16. Trouver une colonne spécifique dans une table inconnue dans une base de données?
- 17. Trouver une chaîne dans une chaîne
- 18. Recherche dans une chaîne essayant de trouver ' en PHP
- 19. façon Pythonic de recherche d'un sous-chaîne dans une liste
- 20. Recherche d'un caractère barre oblique inverse dans vim
- 21. Recherche du codecode Unicode d'un caractère dans GNU Emacs
- 22. Déclencheurs DAQ dans Matlab
- 23. Binning dans matlab
- 24. Comment déterminer si la chaîne contient une sous-chaîne spécifique dans les X premiers caractères
- 25. Comment obtenir le premier caractère d'une chaîne dans SQL?
- 26. Convertir un seul caractère dans Chaîne en minuscule
- 27. Comment supprimer le caractère non numérique d'une chaîne dans java?
- 28. Javascript - Remplacer le caractère d'échappement dans un littéral de chaîne
- 29. Fractionner une chaîne dans ActionScript?
- 30. Comment insérer une chaîne dans un rectangle?
-1. Les autres réponses sont meilleures ici car elles fournissent un exemple de code. Comment as-tu utilisé 'strtok' et' strrep'? Montre un exemple et je vais passer à +1. – gary
C'est une bonne offre. – Richard