• 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

Object Storage Arubacloud
+1 głos
451 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 (253,160 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 335 wizyt
0 głosów
2 odpowiedzi 197 wizyt
pytanie zadane 30 grudnia 2018 w Inne języki przez marcinconn Obywatel (1,560 p.)
0 głosów
2 odpowiedzi 304 wizyt
pytanie zadane 5 listopada 2018 w Inne języki przez netninja3 Nowicjusz (120 p.)

92,556 zapytań

141,404 odpowiedzi

319,563 komentarzy

61,942 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...