2016-03-20 12 views
0

Notwendigkeit, Liste der Wochentage Namen in Sätzen zu erkennen, getrennt durch Kommas, Wort UND und "&" Symbol mit Regex.Übereinstimmungsliste mit gegebenen Wörtern getrennt durch gegebene Liste von Trennzeichen mit einzelnen Regex?

Kann ich dieses Muster mischen:

\b(sunday|monday|tuesday|wednesday|thursday|friday|saturday)(?:s)?\b

(,|\band\b|&)\s?

Also ich dieses Ergebnis zu erreichen: "Dies ist nur Montag, niemand kümmert sich um Mondays"

false keine Inserate

"Ich mag Samstage und Sonntage" true bekam mehr als 1 entspricht, und Separator

"Happy Spaßzeit am Dienstag, Mittwoch, Freitag, von 23.00 bis 12.00 Uhr" true 3 Wochentag, Komma Separator

Antwort

2

Nun, das ist eine erschöpfende Lösung mit einigen alterations.

Regex:

((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+){2,}|((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+)+(and\s|&\s)((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?)

Erläuterung:

  • ((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+){2,} entspricht der Liste der Tage durch Komma getrennt.

Wenn und oder & vor dem letzten Tag der Woche ist dann dieser Teil wird die passende tun.

  • ((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?\s+)+ entspricht der Liste von Wörtern vor and oder &.

  • (and\s|&\s)((sunday|monday|tuesday|wednesday|thursday|friday|saturday)s?,?) entspricht dem letzten Tag der Woche.

Regex101 Demo

+0

Sie geben mir einen guten Anhaltspunkt. Vielen Dank. Aber ich bekomme eine klarere Lösung –

0

Regex

(((sunday|monday|tuesday|wednesday|thursday|friday|saturday)(?:s)?\s?(?:,|and|&)?\s?){2,}) 

Try demo

Verwandte Themen