Excel VBA Regex Match de Position
Comment puis-je récupérer la position de la première appariés résultat dans une expression régulière? Voir ci-dessous.
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
Pour l'un, je ne suis pas tout à fait certaine de ce que .Match
est de retour (string, integer, etc.). La seule solution que j'ai trouvé a dit que je devrais créer un Match
objet pour ensuite attraper la position à partir de là, mais à la différence de vb, vba ne reconnaît pas le Match
objet. J'ai aussi vu un peu de code comme le suivant, mais je ne suis pas nécessairement à la recherche de la valeur, la première chaîne de placement:
If allMatches.count <> 0 Then
result = allMatches.Item(0).submatches.Item(0)
End If
Un peu ignorant les éventuelles erreurs de syntaxe ci-dessus (principalement en raison de m'en changeant les types de variables à droite et à gauche), comment puis-je facilement/simplement accomplir cette?
Merci!
Cependant, je vais poster ma réponse: 8 heures pour le bénéfice de quelqu'un d'autre qui s'exécute ce problème.
Pourquoi 8 heures et pas maintenant?
Parce que je n'avais pas assez de réputation pour poster immédiatement.
OriginalL'auteur Jonathan | 2011-11-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
FirstIndex
pour renvoyer la position de correspondances à l'aide de laExecute
méthode, c'est à direOriginalL'auteur brettdj
Pour le bénéfice de ceux qui peuvent avoir ce problème, j'ai enfin compris.
Au lieu d'un
Match
type, juste unObject
type va faire (en tenant compte de tous, il est de retour en classe). Alors, si vous voulez attraper l'emplacement de l'index, il suffit d'utiliser.FirstIndex
sur le match [de votre choix], ou si vous voulez la valeur, nous.Value
OriginalL'auteur Jonathan