2016-08-08 16 views
0

Ich muss nur den ersten Country-Namen in dem Muster unten übereinstimmen. Die Ländernamen sind in Großbuchstaben angegeben. Ich habe den folgenden Code verwendet, um die Matches zu erhalten, aber es stimmt mit allen Ländern überein.Wie finde ich dieses Muster in R

'\\b[A-Z]{2,}.\\b' 

Beispiel: In dem Muster unten möchte ich UNITED nur KINGDOM

x = "~ London, Greater London ~ UNITED KINGDOM;~ Ottawa, Ontario ~ CANADA;~,~ AUSTRALIA;~,~ POLAND;~,~ USA" 
+0

Welchen Code haben Sie benutzt? –

+0

Sind alle Buchstaben ASCII oder gibt es Unicode-Zeichen? –

Antwort

2

Dies scheint zu funktionieren:

regmatches(x, regexpr('\\b[A-Z ]{2,}\\b', x)) 
# [1] "UNITED KINGDOM" 

ich nur einen Raum hinzugefügt den Zeichensatz [A-Z ] zu machen. Beachten Sie, dass regexpr die erste Übereinstimmung erhält, während gregexpr alle von ihnen erhält (ähnlich wie sub vs gsub). Für weitere Informationen empfehle ich die offizielle Dokumentation unter ?regexpr.