Autor
|
Tema: ¿Cómo encontrar una cadena dentro de un párrafo de texto? (Leído 4,155 veces)
|
|
XresH
|
Qué lenguaje estás manejando?
Saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Hay varias formas. Si estás usando un html/xml/xmlns lo mejor quizás sería que uses htmlagilitypack: http://htmlagilitypack.codeplex.com/...Pero es el método más dificil de entre los que existen, y dependiendo del conteido (sopa de tags) podría no serte útil en absoluto. Puedes usar el método SPLIT : http://msdn.microsoft.com/en-us/library/system.string.split.aspxfor each item in variable_de_tipo_String.split(controlchars.quote) : msgbox(item) : next
O mi manera favorita, Expresiones regulares: http://en.wikipedia.org/wiki/Regular_expressionOutput: http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits.jpg http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits11.jpg Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim str As String = <a><![CDATA[<a href="http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits.jpg"/> <a href="http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits11.jpg"/>]]></a>.Value Dim regex As String = <a><![CDATA[(http://|https://|www)([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?]]></a>.Value For Each match In RegEx_Matches_To_List(str, regex) : MsgBox(match) : Next End Sub #Region " RegEx Matches To List " ' [ RegEx Matches To List Function ] ' ' // By Elektro H@cker Private Function RegEx_Matches_To_List(ByVal str As String, ByVal RegEx_Pattern As String, _ Optional ByVal Group As Int32 = 0, _ Optional ByVal IgnoreCase As Boolean = True) _ As List(Of String) Dim regex_option As System.Text.RegularExpressions.RegexOptions If IgnoreCase Then regex_option = System.Text.RegularExpressions.RegexOptions.IgnoreCase _ Else regex_option = System.Text.RegularExpressions.RegexOptions.None Dim match As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(str, RegEx_Pattern, regex_option) Dim Matches_List As New List(Of String) Do While match.Success Matches_List.Add(match.Groups(Group).ToString) match = match.NextMatch() Application.DoEvents() Loop Return Matches_List End Function #End Region End Class
Saludos.
|
|
« Última modificación: 7 Junio 2013, 11:04 am por EleKtro H@cker »
|
En línea
|
|
|
|
Juancho25
Desconectado
Mensajes: 28
|
Qué lenguaje estás manejando?
Saludos.
C++ en Windows Forms.
|
|
|
En línea
|
|
|
|
Juancho25
Desconectado
Mensajes: 28
|
Hay varias formas. Si estás usando un html/xml/xmlns lo mejor quizás sería que uses htmlagilitypack: http://htmlagilitypack.codeplex.com/...Pero es el método más dificil de entre los que existen, y dependiendo del conteido (sopa de tags) podría no serte útil en absoluto. Puedes usar el método SPLIT : http://msdn.microsoft.com/en-us/library/system.string.split.aspxfor each item in variable_de_tipo_String.split(controlchars.quote) : msgbox(item) : next
O mi manera favorita, Expresiones regulares: http://en.wikipedia.org/wiki/Regular_expressionOutput: http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits.jpg http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits11.jpg Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim str As String = <a><![CDATA[<a href="http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits.jpg"/> <a href="http://1.bp.blogspot.com/-NhL7eyZF_bM/UC6AO7LanyI/AAAAAAAADNw/VkfXa-fNxpA/s1600/glucides-vitamines-fruits11.jpg"/>]]></a>.Value Dim regex As String = <a><![CDATA[(http://|https://|www)([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?]]></a>.Value For Each match In RegEx_Matches_To_List(str, regex) : MsgBox(match) : Next End Sub #Region " RegEx Matches To List " ' [ RegEx Matches To List Function ] ' ' // By Elektro H@cker Private Function RegEx_Matches_To_List(ByVal str As String, ByVal RegEx_Pattern As String, _ Optional ByVal Group As Int32 = 0, _ Optional ByVal IgnoreCase As Boolean = True) _ As List(Of String) Dim regex_option As System.Text.RegularExpressions.RegexOptions If IgnoreCase Then regex_option = System.Text.RegularExpressions.RegexOptions.IgnoreCase _ Else regex_option = System.Text.RegularExpressions.RegexOptions.None Dim match As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(str, RegEx_Pattern, regex_option) Dim Matches_List As New List(Of String) Do While match.Success Matches_List.Add(match.Groups(Group).ToString) match = match.NextMatch() Application.DoEvents() Loop Return Matches_List End Function #End Region End Class
Saludos. Intenté entenderlo pero se me complicó, no sé muy bien de ese lenguaje y sé más de C++ en Windows Forms. Si pudieras ponerlo en el lenguaje que te menciono te lo agradecería.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Intenté entenderlo pero se me complicó, no sé muy bien de ese lenguaje y sé más de C++ en Windows Forms. Si pudieras ponerlo en el lenguaje que te menciono te lo agradecería.
Dim regex As String = <a><![CDATA[(http://|https://|www)([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?]]></a>.Value
No, no sé C/C++/C#, Copia ese RegEx, conviértelo a la sintaxis adecuada de C++ usando la aplicación "RegExBuddy", y ya tienes la primera parte del problema solucionada, el resto solo sería que aprendieses a usar las expresiones regulares en C++ (si no supieras). Saludos
|
|
« Última modificación: 8 Junio 2013, 08:38 am por EleKtro H@cker »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Cómo sacar un texto dentro de otro otros textos?
.NET (C#, VB.NET, ASP)
|
Tzdah
|
1
|
2,598
|
28 Julio 2013, 13:00 pm
por z3nth10n
|
|
|
Error programa encontrar una cadena dentro de otra
Programación C/C++
|
David8
|
8
|
3,931
|
9 Abril 2014, 16:06 pm
por David8
|
|
|
Encontrar una cadena en el final de otra en python
Scripting
|
Schaiden
|
2
|
2,544
|
10 Febrero 2017, 00:30 am
por Sk9ITk5Z
|
|
|
Encontrar cadena para conexión a BD
Programación Visual Basic
|
alsoor
|
2
|
2,642
|
8 Diciembre 2017, 03:05 am
por alsoor
|
|
|
Array de una cadena de datos, vuelta parrafo
Programación C/C++
|
Wilber592
|
3
|
1,747
|
27 Septiembre 2018, 17:55 pm
por Wilber592
|
|