none
Como eliminar caracteres antes o después de un carácter especifico en un string RRS feed

  • Pregunta

  • Saludos, parto del hecho de que en el ejemplo no se cuantos caracteres son, ni que posición ocupan ni cuales caracteres son  lo único que se, es que se deben borrar después de que aparezca cierto carácter a la izquierda o derecha Ej: un punto(".") si  la cadena es una URL como esta: "https://msdn.microsoft.com" lo que quisiera es eliminar todo lo que aparece después del primer punto, algo parecido seria con:  URL = URL.Remove(0, URL.IndexOf(".") +1); Pero esto elimina todo "antes" del primer punto y lo que necesito es borrar todo pero "después" del primer punto. Gracias y espero haya una solución.
    domingo, 29 de octubre de 2017 6:22

Respuestas

  • "Renzo20" escribió:

    > ... lo único que se, es que se deben borrar después de que aparezca cierto carácter
    > a la izquierda o derecha Ej: un punto(".") si  la cadena es una URL como esta:
    > "https://msdn.microsoft.com" ...

    ¿A la izquierda o a la derecha? Es que no es lo mismo obtener el valor "https://msdn." (izquierda) que obtener el valor "microsoft.com" (a la derecha del primer punto).

    > ... lo que quisiera es eliminar todo lo que aparece después del primer punto, algo
    > parecido seria con:  URL = URL.Remove(0, URL.IndexOf(".") +1); Pero esto elimina
    > todo "antes" del primer punto y lo que necesito es borrar todo pero "después" del
    > primer punto.

     

    Yo voy a suponer que deseas eliminar todo lo que aparezca a la derecha del primer punto, es decir, que para el valor alfanumérico que has puesto de ejemplo, obtener el valor que existe a la izquierda del punto: "https://msdn.", con el punto incluido.

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim url As String = "https://msdn.microsoft.com"
    
            ' Índice donde se localiza el primer carácter que deseamos buscar.
            '
            Dim index As Integer = url.IndexOf("."c)
    
            If (index > -1) Then
                ' Si existe el carácter, obtenemos el valor alfanumérico
                ' hasta el índice más uno del carácter buscado.
                url = url.Substring(0, index + 1)
            End If
    
            MessageBox.Show(url)  ' --> https://msdn.
    
        End Sub

    ¿Que no deseas que aparezca el propio carácter buscado (el punto) en el valor obtenido? Entonces elimina el + 1:

            If (index > -1) Then
                ' Si existe el carácter, obtenemos el valor alfanumérico 
                ' hasta el índice del carácter buscado.
                url = url.Substring(0, index)
            End If

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    domingo, 29 de octubre de 2017 7:17
    Moderador

Todas las respuestas

  • "Renzo20" escribió:

    > ... lo único que se, es que se deben borrar después de que aparezca cierto carácter
    > a la izquierda o derecha Ej: un punto(".") si  la cadena es una URL como esta:
    > "https://msdn.microsoft.com" ...

    ¿A la izquierda o a la derecha? Es que no es lo mismo obtener el valor "https://msdn." (izquierda) que obtener el valor "microsoft.com" (a la derecha del primer punto).

    > ... lo que quisiera es eliminar todo lo que aparece después del primer punto, algo
    > parecido seria con:  URL = URL.Remove(0, URL.IndexOf(".") +1); Pero esto elimina
    > todo "antes" del primer punto y lo que necesito es borrar todo pero "después" del
    > primer punto.

     

    Yo voy a suponer que deseas eliminar todo lo que aparezca a la derecha del primer punto, es decir, que para el valor alfanumérico que has puesto de ejemplo, obtener el valor que existe a la izquierda del punto: "https://msdn.", con el punto incluido.

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim url As String = "https://msdn.microsoft.com"
    
            ' Índice donde se localiza el primer carácter que deseamos buscar.
            '
            Dim index As Integer = url.IndexOf("."c)
    
            If (index > -1) Then
                ' Si existe el carácter, obtenemos el valor alfanumérico
                ' hasta el índice más uno del carácter buscado.
                url = url.Substring(0, index + 1)
            End If
    
            MessageBox.Show(url)  ' --> https://msdn.
    
        End Sub

    ¿Que no deseas que aparezca el propio carácter buscado (el punto) en el valor obtenido? Entonces elimina el + 1:

            If (index > -1) Then
                ' Si existe el carácter, obtenemos el valor alfanumérico 
                ' hasta el índice del carácter buscado.
                url = url.Substring(0, index)
            End If

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    domingo, 29 de octubre de 2017 7:17
    Moderador
  • Gracias! justo la lógica que buscaba
    domingo, 29 de octubre de 2017 17:12