¿Cómo puedo obtener la posición del primer resultado coincidente en una expresión regular? Vea abajo.Excel VBA Regex Match Position
Function MYMATCH(strValue As String, strPattern As String, Optional blnCase As Boolean = True, Optional blnBoolean = True) As String
Dim objRegEx As Object
Dim strPosition As Integer
' Create regular expression.
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = strPattern
objRegEx.IgnoreCase = blnCase
' Do the search match.
strPosition = objRegEx.Match(strValue)
MYMATCH = strPosition
End Function
Por un lado, no estoy del todo seguro de lo que está regresando .Match
(cadena, entero, etc.). La única solución que encontré dijo que debería crear un objeto Match
y luego tomar la posición desde allí, pero a diferencia de vb, vba no reconoce el objeto Match
. También he visto some code como la siguiente, pero no estoy buscando necesariamente el valor, sólo la primera colocación cadena:
If allMatches.count <> 0 Then
result = allMatches.Item(0).submatches.Item(0)
End If
ignorando Algo cualquiera de los posibles errores de sintaxis anteriores (sobre todo debido a mi cambio de variables tipos derecha e izquierda), ¿cómo puedo lograrlo fácilmente?
Gracias!
Tiene razón, es mi culpa (se me olvidó que ayuda a la reputación de todos) en este sitio) ... además de eso, me di cuenta por mi cuenta ... otra vez. – Jonathan
Sin embargo, publicaré mi respuesta en 8 horas para el beneficio de cualquier otra persona que se encuentre con este problema. – Jonathan
¿Por qué 8 horas y no ahora? – JimmyPena