Contar ocurrencias

04/05/2006 - 21:59 por Pedro Echavarria | Informe spam
Soy nuevo en esto.

Hola, como puedo contar las ocurrencias de una palabra dentro de un string.


Gracias

Preguntas similare

Leer las respuestas

#1 Jorge Serrano [MVP VB]
04/05/2006 - 23:30 | Informe spam
Hola Pedro,

lo más efectivo es usar Expresiones Reguladas.

En Internet existe bastante información y en la propia ayuda de .NET también.

Con Expresiones Reguladas podrás realizar casi cualquier cosa que se te
ocurra con cadenas.

Espero que esto te sirva.

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Blog de Jorge Serrano
http://geeks.ms/blogs/jorge/default.aspx


"Pedro Echavarria" wrote:

Soy nuevo en esto.

Hola, como puedo contar las ocurrencias de una palabra dentro de un string.


Gracias



Respuesta Responder a este mensaje
#2 Pedro Echavarria
05/05/2006 - 04:18 | Informe spam
Bueno, me luce que es muy complicado entonces.
Pensaba que podia ser una simple funcion.


"Jorge Serrano [MVP VB]"
wrote in
message news:
Hola Pedro,

lo más efectivo es usar Expresiones Reguladas.

En Internet existe bastante información y en la propia ayuda de .NET
también.

Con Expresiones Reguladas podrás realizar casi cualquier cosa que se te
ocurra con cadenas.

Espero que esto te sirva.

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Blog de Jorge Serrano
http://geeks.ms/blogs/jorge/default.aspx


"Pedro Echavarria" wrote:

Soy nuevo en esto.

Hola, como puedo contar las ocurrencias de una palabra dentro de un
string.


Gracias



Respuesta Responder a este mensaje
#3 Jorge Serrano [MVP VB]
05/05/2006 - 06:39 | Informe spam
Hola,

para contarel número de palabras de una cadena, sí es automático:

Dim strFrase as String = "Frase de ejemplo"
Dim numPalabras as Integer = 0
numPalabras = strFrase.Split(Nothing).Length

Para contar el número de ocurrencias de una palabra en una cadena, sí debes
usar otros métodos más avanzados como las Expresiones Reguladas.

Pero tampoco es tan complicado.

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Blog de Jorge Serrano
http://geeks.ms/blogs/jorge/default.aspx


"Pedro Echavarria" wrote:

Bueno, me luce que es muy complicado entonces.
Pensaba que podia ser una simple funcion.


"Jorge Serrano [MVP VB]"
wrote in
message news:
> Hola Pedro,
>
> lo más efectivo es usar Expresiones Reguladas.
>
> En Internet existe bastante información y en la propia ayuda de .NET
> también.
>
> Con Expresiones Reguladas podrás realizar casi cualquier cosa que se te
> ocurra con cadenas.
>
> Espero que esto te sirva.
>
> Un saludo.
>
> Jorge Serrano Pérez
> Microsoft MVP VB.NET
> PortalVB.com
> http://www.portalvb.com/
> Blog de Jorge Serrano
> http://geeks.ms/blogs/jorge/default.aspx
>
>
> "Pedro Echavarria" wrote:
>
>> Soy nuevo en esto.
>>
>> Hola, como puedo contar las ocurrencias de una palabra dentro de un
>> string.
>>
>>
>> Gracias
>>
>>
>>



Respuesta Responder a este mensaje
#4 Leonardo Azpurua [mvp vb]
05/05/2006 - 07:27 | Informe spam
"Jorge Serrano [MVP VB]"
escribió
en el mensaje news:
Hola,

para contarel número de palabras de una cadena, sí es automático:

Dim strFrase as String = "Frase de ejemplo"
Dim numPalabras as Integer = 0
numPalabras = strFrase.Split(Nothing).Length

Para contar el número de ocurrencias de una palabra en una cadena, sí
debes
usar otros métodos más avanzados como las Expresiones Reguladas.

Pero tampoco es tan complicado.



Hola, Jorge:

Una manera de hacerlo es:

numOcurrencias = laFrase.ToUpper.Split(laPalabra.ToUpper).Length - 1

si usaramos expresiones regulares tampoco sería complejo:

[Imports System.Text.RegularExpressions]
Dim rex As New Regex(laPalabra.ToUpper)
Dim numPalabras As Integer = rex.Matches(laFrase.ToUpper).Count

Salud!
Respuesta Responder a este mensaje
#5 Jorge Serrano [MVP VB]
05/05/2006 - 09:38 | Informe spam
Hola Leonardo,

escribiendo y usando tu código:

Dim laFrase As String = "esto es un ejemplo especial"
Dim laPalabra As String = "es"

Dim numOcurrencias As Integer =
laFrase.ToUpper.Split(laPalabra.ToUpper).Length - 1
MessageBox.Show(numOcurrencias)

Dim rex As New System.Text.RegularExpressions.Regex(laPalabra.ToUpper)
Dim numPalabras As Integer = rex.Matches(laFrase.ToUpper).Count
MessageBox.Show(numPalabras)

En el primer ejemplo me sale 6 y en el segundo 3.

Las expresiones reguladas es la forma más efectiva de hacer esto, porque
incluso puedes obligar a que en una cadena se tomen en cuenta o no, cuando
empieza por mayúscula, cuando tiene espacios, comas o puntos a los lados,
cuando forma palabra y no parte de una palabra como el caso que expones, etc.

Espero que esto le aclare a Pedro las posibilidades de las Expresiones
Reguladas. :-)

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Blog de Jorge Serrano
http://geeks.ms/blogs/jorge/default.aspx


"Leonardo Azpurua [mvp vb]" wrote:


"Jorge Serrano [MVP VB]"
escribió
en el mensaje news:
> Hola,
>
> para contarel número de palabras de una cadena, sí es automático:
>
> Dim strFrase as String = "Frase de ejemplo"
> Dim numPalabras as Integer = 0
> numPalabras = strFrase.Split(Nothing).Length
>
> Para contar el número de ocurrencias de una palabra en una cadena, sí
> debes
> usar otros métodos más avanzados como las Expresiones Reguladas.
>
> Pero tampoco es tan complicado.

Hola, Jorge:

Una manera de hacerlo es:

numOcurrencias = laFrase.ToUpper.Split(laPalabra.ToUpper).Length - 1

si usaramos expresiones regulares tampoco sería complejo:

[Imports System.Text.RegularExpressions]
Dim rex As New Regex(laPalabra.ToUpper)
Dim numPalabras As Integer = rex.Matches(laFrase.ToUpper).Count

Salud!



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida