Mit Regexp zu prüfen, ob ein string beginnt mit einem Konsonant
Gibt es eine bessere Art und Weise zu schreiben, der folgende reguläre Ausdruck in Ruby? Der erste reguläre Ausdruck entspricht einer Zeichenfolge, die beginnt mit ein (in Kleinbuchstaben) Konsonanten, die zweite mit einem Vokal.
Ich versuche herauszufinden, wenn es einen Weg gibt, um Schreibe einen regulären Ausdruck, entspricht dem negativen des zweiten Ausdrucks, im Vergleich zu schreiben, der dem ersten Ausdruck mit mehreren Bereichen.
string =~ /\A[b-df-hj-np-tv-z]/
string =~ /\A[aeiou]/
InformationsquelleAutor evkline | 2013-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Aussage
wird überprüft, ob die Zeichenfolge beginnt mit einem non-Vokal - Charakter, enthält Ziffern, Satzzeichen, Leerzeichen und steuerzeichen. Das ist in Ordnung, wenn Sie wissen vorher, dass die Zeichenfolge beginnt mit einem Buchstaben, sondern auch um zu prüfen, dass es beginnt mit einem Konsonanten, die Sie verwenden können-forward-look-ahead, um zu testen, dass es beginnt mit einem Brief und einem nicht-Vokal, wie dies
Entsprechen einer beliebigen Anzahl von Konsonanten, können Sie die sub-Ausdruck
(?i:(?![aeiou])[a-z])
mit einem Konsonanten. Es ist unteilbar, so kann man sich die Wiederholung zählen, wie{3}
direkt nach es. Zum Beispiel, dieses Programm findet alle strings in eine Liste, enthalten, die drei Konsonanten in einer ReiheAusgabe
Wie würden Sie passen für mehrere Charaktere? Zum Beispiel, wenn Sie wollte, zu finden, wenn die ersten 3 Buchstaben waren Konsonanten, mit dem {3} nach dem Ausdruck?
Ich entschuldige mich - ich fiel in Perl! Ich habe geändert meine Antwort um zu zeigen, wie zu entsprechen, verwenden Sie eine Wiederholung der Zählung auf eine "Konsonant" sub-expression.
InformationsquelleAutor Borodin
Modifizierte ich die Antwort von @Alexander Cherednichenko, um loszuwerden, die if-Anweisungen.
InformationsquelleAutor Goma_BR
Wenn Sie möchten, zu fangen, eine Zeichenfolge, die beginnt nicht mit vokalen, sondern startet nur mit Konsonanten, die Sie verwenden können diesen code unten. Es gibt true zurück, wenn die Zeichenfolge beginnt mit jedem anderen Buchstaben als A, E, I, O, U. s ist eine beliebige Zeichenfolge, geben wir eine Funktion
ich Hinzugefügt am Ende zu machen, regulärer Ausdruck groß-und Kleinschreibung.
\W dient zum abfangen von nicht-Wort-Zeichen, zum Beispiel, wenn die Zeichenfolge beginnt mit einer Ziffer, z.B.: "1something"
[^aeiou] bedeutet eine Reihe von Zeichen, mit Ausnahme von a e i o u
Und wir setzen ^ am Anfang, bevor [ , um anzuzeigen, dass die folgende Reihe [^aeiou\W], wenn Sie für den 1. Charakter
InformationsquelleAutor Alexander Cherednichenko