2017-01-11 2 views
0

Ich habe diesen Text:Holen Sie sich das dritte Regex zwischen speziellen char

2|@Favo|Name||26.0000|50.10000|_GRE|||||City|Road|||| 

Ich mag etwas zwischen diesen Sonderzeichen erfassen: ||

Zum Beispiel möchte ich „Namen“ nur oder mich erfassen will „City“ erfassen
ich mit vielen Stunden und alles, was ich aufkommen verbracht habe, ist diese regex:

([^|].*[$|])\w+ 

Hier ist die erforderliche val ue: Values Wie kann ich einen von ihnen erfassen?

Vielen Dank.

+0

Es ist nicht, was klar ist, die Anforderungen sind, könntest du sie bitte klären? Sie können die Zeichenfolge immer mit ''|'' teilen und dann nach einem Element suchen, das Ihren Kriterien entspricht. –

+0

@ WiktorStribiżew Ich möchte die Werte zwischen "| value |", aus dem Text –

+0

bekommen Das hilft nicht, es gibt keine '| value |' Text in Ihrer Eingabe-Zeichenfolge. –

Antwort

2

Sie die Zeichenfolge aufgeteilt mit | leeren Einträge zu entfernen und auch alle diejenigen, die nur aus Ziffern leer oder aus sind:

Dim strng As String = "2|@Favo|Name||26.0000|50.10000|_GRE|||||City|Road||||" 
Dim reslt As List(Of String) = strng.Split(New String() {"|"}, StringSplitOptions.RemoveEmptyEntries).Where(
    Function(m) m.All(AddressOf Char.IsDigit) = False And String.Equals(m.Trim(), String.Empty) = False).ToList() 
Console.Write(String.Join(", ", reslt)) 

Ausgang:

enter image description here

+0

danke viel mann –