2008-09-29 14 views

Respuesta

4

Esto parece funcionar ...

C#

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

o vb.net

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

Dadas texto de entrada de ...

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

... esto dará paso ....

"#asdf" y "#df"

Yo te garantizo que este no le consigue una matriz de cadenas pero el MatchCollection es enumerable y así podría ser lo suficientemente bueno.


Además, voy a añadir que me dieron esto a través del uso de Expresso. que parece ser gratis. Fue muy útil para producir C#, que soy muy pobre. (Es decir, qué el escape para mí.) (Si alguien piensa que debería eliminar esta pseudo-anuncio, por favor, comentar, pero pensé que podría ser útil :) Los buenos tiempos)

1

Desde desea incluir las palabras que la división que debería utilizar algo así como

"\b#\w+\b" 

Esto incluye la palabra real que hay en la expresión. Sin embargo, no estoy seguro de que eso sea lo que quieres. ¿Podría proporcionar un ejemplo de entrada y el resultado deseado?

1

El uso de PHP preg_match_all():

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

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

Salidas:

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

Aquí es un código 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

En Microsoft regex sabores, pruebe: "\ #: w"

Eso funcionó para mí utilizando Find en Visual Studio. No sé cómo se traducirá en la clase Regex.

EDITAR: Se tragó la barra diagonal inversa.

Cuestiones relacionadas