5
Quiero hacer coincidir (en este fragmento de código) todo pero no incluir una nueva línea, que es lo que yo pensaba. haría. ¿Podría alguien arrojar luz sobre lo que me estoy perdiendo por favor?vba regex: dot matching newline
Public Sub regexp()
Dim oRegExp As regexp
Dim oMatches As MatchCollection
Dim oMatch As Match
Dim sString As String
sString = _
"one" & vbNewLine & _
"two" & vbNewLine
Set oRegExp = New regexp
With oRegExp
.Global = True
.Pattern = ".+"
Set oMatches = .Execute(sString)
For Each oMatch In oMatches
Debug.Print "*" & oMatch.Value & "*"
Next oMatch
End With
End Sub
salida es
*one
*
*two
*
espera que la producción
*one*
*two*
¿Cómo puedo evitar el salto de línea en la salida? Gracias.
Lamentablemente, eso me da el mismo resultado. – wfsp
Pruebe '[^ \ n \ r]' en su lugar: la [documentación] (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.constants.vbnewline.aspx) sugiere que 'vbNewLine' es solo un nuevo carácter de línea, pero tengo algunos recuerdos vagos, en realidad es la nueva secuencia de caracteres de línea específica del sistema, que incluye un retorno de carro en Windows. – eggyal
Eso fue todo, muchas gracias. El caso real era un archivo de texto y tu solución funciona bien también. Gracias otra véz. – wfsp