2008-09-29 4 views

Répondre

4

Cela semble fonctionner ...

C#

Regex MyRegex = new Regex("\\#\\w+"); 
MatchCollection ms = MyRegex.Matches(InputText); 

ou vb.net

Dim MyRegex as Regex = new Regex("\#\w+") 
Dim ms as MatchCollection = MyRegex.Matches(InputText) 

texte d'entrée donné des ...

« asdfas asdf #asdf asd fas df asd fas #df asd f asdf "

... cela donne ....

« #asdf » et « #df »

Je vous accorde que cela ne vous donne pas une chaîne mais le tableau est MatchCollection dénombrable et ainsi pourrait être assez bon.


De plus, je vais ajouter que je suis arrivé grâce à l'utilisation de Expresso. ce qui semble être libre. C'était très utile pour produire le C# que je suis très pauvre. (Il ne l'échapper pour moi.) (Si quelqu'un pense que je devrais supprimer ce pseudo-annonce alors s'il vous plaît commentaire, mais je pense qu'il pourrait être utile :) bon temps)

1

Puisque vous voulez inclure les mots dans la répartition, vous devez utiliser quelque chose comme

"\b#\w+\b" 

Cela inclut le mot lui-même là dans l'expression. Cependant, je ne suis pas sûr que ce soit ce que vous voulez. Pourriez-vous fournir un exemple d'entrée et la sortie désirée?

1

utilisant PHP de preg_match_all():

$text = 'Test #string testing #my test #text.'; 
preg_match_all('/#[\S]+/', $text, $matches); 

echo '<pre>'; 
print_r($matches[0]); 
echo '</pre>'; 

Sorties:

 
Array 
(
    [0] => #string 
    [1] => #my 
    [2] => #text. 
) 
0

Voici un code en Javascript:

text = "what #regEx can I use to #split a #string into whole words but only" 
// what #regEx can I use to #split a #string into whole words but only" 
text.match(/#\w+/g); 
// [#regEx,#split,#string] 
0

Dans les saveurs regex de Microsoft, essayez: "\ #: w"

Cela a fonctionné pour moi en utilisant Find dans Visual Studio. Je ne sais pas comment cela se traduira dans la classe Regex.

EDIT: Une barre oblique inversée a été avalée.

Questions connexes