J'ai une chaîne de caractères "Nom d'utilisateur (ventes)" et je veux extraire le texte entre les parenthèses, comment dois-je faire ? Je pense à une sous-chaîne, mais je n'arrive pas à trouver comment lire jusqu'à la parenthèse fermante, la longueur du texte varie.
Réponses
Trop de publicités?
Jelly Ama
Points
820
Diadistis
Points
6892
Une façon très simple de le faire est d'utiliser des expressions régulières :
Regex.Match("User name (sales)", @"\(([^)]*)\)").Groups[1].Value
En réponse au commentaire (très drôle), voici la même Regex avec quelques explications :
\( # Escaped parenthesis, means "starts with a '(' character"
( # Parentheses in a regex mean "put (capture) the stuff
# in between into the Groups array"
[^)] # Any character that is not a ')' character
* # Zero or more occurrences of the aforementioned "non ')' char"
) # Close the capturing group
\) # "Ends with a ')' character"
Ross Goddard
Points
2565
artfulhacker
Points
1731
Jennifer
Points
2603
Les expressions régulières pourraient être le meilleur outil ici. Si vous n'êtes pas familier avec elles, je vous recommande d'installer Expresso - un excellent petit outil de regex.
Quelque chose comme :
Regex regex = new Regex("\\((?<TextInsideBrackets>\\w+)\\)");
string incomingValue = "Username (sales)";
string insideBrackets = null;
Match match = regex.Match(incomingValue);
if(match.Success)
{
insideBrackets = match.Groups["TextInsideBrackets"].Value;
}
- Réponses précédentes
- Plus de réponses