Supprimer les caractères avant les caractères spéciaux c #

J'essaie de supprimer les caractères d'une chaîne AVANT tout caractère non alphanumérique. Par exemple, disons que vous avez un nom "James Ebanks-Blake", je peux le diviser en un tableau en utilisant:

var s = "James Ebanks-Blake".Split(' ');

Même s'il y a plus d'un espace, cela fera juste plus d'index de tableau. Donc, ce que je dois faire est de faire une boucle à travers tous les tableaux, trouver des index avec un caractère spécial, puis supprimer tous les index et le caractère spécial.

Quelqu'un peut-il m'aider?

0
Je veux seulement obtenir "Blake" dans ce cas. Les caractères spéciaux sont donc ceux qui ne sont pas un z ou un chiffre. De cette façon, le même code fonctionnerait si le nom de la personne était Scarlet O'Hara. (Ce qui donnerait "Hara", et bien que cela puisse être trivial, il y a des cas où cela serait pertinent ...
ajouté l'auteur GenXisT, source
Oui! J'ai édité à la fin (lol)
ajouté l'auteur GenXisT, source
Quelle est votre sortie attendue de ce qui précède? "Blake"? Que considérez-vous comme un personnage "spécial"?
ajouté l'auteur Cᴏʀʏ, source
Donc, vous attendez juste "Hara" de l'exemple Scarlet?
ajouté l'auteur Cᴏʀʏ, source

2 Réponses

Cela fonctionne ici

[-^$#](.*)

Ajoutez simplement ce que vous considérez comme des caractères spéciaux dans la classe de caractères

La chaîne que vous voulez sera dans le groupe 1

resultString = Regex.Match(subjectString, "[-^$#](.*)", RegexOptions.Singleline).Groups[1].Value;
0
ajouté
Celui-ci semble fonctionner sauf quand je l'ai essayé sur la version Scarlett O'Hara. Je ne produis aucun résultat. On dirait que l'expression rationnelle a besoin d'un petit tweak. (Je n'ai aucune idée de ce qui se passe dans une expression regex).
ajouté l'auteur GenXisT, source
Droit ... Je l'ai eu maintenant ... la "classe de caractères" est à l'intérieur des bracketts ... alors j'ai ajouté le 'là dedans et ça a marché! Impressionnant. Merci beaucoup!!
ajouté l'auteur GenXisT, source
Ajoutez simplement ce que vous considérez comme spécial à l'intérieur de la classe de caractères, c'est-à-dire entre [et]. Donc, pour Scarlett O'Hara, vous devez ajouter la citation simple 'et il devient [- ^ $ #']
ajouté l'auteur buckley, source
yay Bon :)
ajouté l'auteur buckley, source

[- '] (. *)

Cela devrait saisir n'importe quoi après un - et un '. Si vous le souhaitez, vous pouvez ajouter plus de caractères dans la section []. Assurez-vous juste d'échapper à ceux regex spéciaux.

0
ajouté