• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Regex, słowa między przecinkami

Cloud VPS
+1 głos
747 wizyt
pytanie zadane 26 grudnia 2020 w Inne języki przez amtrax Dyskutant (9,630 p.)

Cześć,

na wejściu mam następujące typy zdań do przefiltrowania:

Citizens of Poland, Sweden, Germany require something
Citizens of Poland require something
Citizens of United States require something

Potrzebuje odfiltrować nazwy krajów osobno, tak aby móc każdą nację potem zapisać. 

Na potrzeby tego zadania zbudowałem takie wyrażenie regularne: 

Pattern pattern  = Pattern.compile("(?:Citizens of )? ([A-Z][a-z]+\\s*[A-Z]*[a-z]*) require");

Działa ono dobrze, dopóki nie pojawi się więcej niż jedna nazwa kraju, gdy jest ich więcej po przecinku, mechanizm nie działa. 

 

1 odpowiedź

+1 głos
odpowiedź 26 grudnia 2020 przez VBService Ekspert (256,600 p.)
wybrane 27 grudnia 2020 przez amtrax
 
Najlepsza

Po zapisie pattern-u, rozpoznaję, że to java. Zgadłem? Nie "piszę" w tym języku (ale wszystkie lub prawie wszystkie języki programowania na pewnym poziomie są podobne wink ), ale skoro każde zdanie zaczyna się od  "Citizens of " i potrzebujesz wyciągnąć tekst, aż do słowa "require", to może użyj string.substring(...) , więc pokusiłem się o taki zapis ...(nie używam java-y, więc proszę o wyrozumiałość wink )

 

public class Main
{
    public static void main(String[] args) {
        String sentences[] = {
                                "Citizens of Poland, Sweden, Germany require something",
                                "Citizens of Poland require something",
                                "Citizens of United States require something"
                             };
    
        for (String sentence: sentences) {
            sentence = sentence.substring(("Citizens of").length(),sentence.indexOf("require"));
            System.out.println(sentence.trim());
        }
    }
}

Podobne pytania

0 głosów
0 odpowiedzi 433 wizyt
0 głosów
2 odpowiedzi 433 wizyt
pytanie zadane 30 grudnia 2018 w Inne języki przez marcinconn Obywatel (1,560 p.)
0 głosów
2 odpowiedzi 483 wizyt
pytanie zadane 5 listopada 2018 w Inne języki przez netninja3 Nowicjusz (120 p.)

93,481 zapytań

142,414 odpowiedzi

322,758 komentarzy

62,893 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...