Was bedeutet /([^.]*).(.*)/?

8

Wenn ich nach etwas gesucht habe, habe ich eine beantwortete Frage auf dieser Seite gefunden. 2 der Antworten enthalten

/([^.]*)\.(.*)/

auf ihre Antwort. Die Frage befindet sich unter Suchen & amp; Ersetzen Sie jquery . Ich bin ein Neuling in Javascript, also frage ich mich, was es bedeutet? Danke.

    
James Rudolph 04.12.2009, 04:14
quelle

11 Antworten

27
%Vor%

Lasst uns es dekonstruieren. Der Anfangs- und der nachstehende Schrägstrich sind Trennzeichen und markieren den Anfang und das Ende des regulären Ausdrucks.

Dann gibt es eine geklammerte Gruppe: ([^.]*) Die Klammern sind nur dazu da, eine Zeichenfolge zu gruppieren. Die eckigen Klammern kennzeichnen eine "Zeichengruppe", das bedeutet, dass ein beliebiges Zeichen innerhalb dieser Gruppe an seiner Stelle akzeptiert wird. Diese Gruppe wird jedoch negiert, indem das erste Zeichen ^ ist, was seine Bedeutung umkehrt. Da das einzige Zeichen neben der Negation ein Punkt ist, entspricht dies einem einzelnen Zeichen, das kein Punkt ist. Nach den eckigen Klammern ist ein * (Sternchen), was bedeutet, dass die eckigen Klammern null oder mehr Male übereinstimmen können.

Dann kommen wir zum \. . Dies ist eine entkommene Zeit. Perioden in regulären Ausdrücken haben eine besondere Bedeutung (außer bei Escapezeichen oder in einer Zeichengruppe). Dies entspricht einem literalen Punkt im Text.

(.*) ist eine neue parantierte Untergruppe. Dieses Mal entspricht die Periode einem beliebigen Zeichen und das Sternchen besagt, dass es so oft wie nötig wiederholt werden kann.

Zusammenfassend findet der Ausdruck eine beliebige Folge von Zeichen (das ist keine Periode), gefolgt von einer einzelnen Periode, gefolgt von einem beliebigen Zeichen.

Bearbeiten: Teil über Verkürzung wurde entfernt, da es den angenommenen Zweck des regulären Ausdrucks vereitelt.

    
Vegard Larsen 04.12.2009 04:24
quelle
8

Es ist ein regulärer Ausdruck (es passt zu Nicht-Punkten, gefolgt von einem Punkt, auf den alles folgt (denken Sie an "Datei. ext ")). Und du solltest laufen, nicht laufen, um etwas über sie zu lernen. Zu erklären, wie dieser bestimmte reguläre Ausdruck funktioniert, wird Ihnen nicht helfen, da Sie einfacher anfangen müssen. Beginnen Sie also mit einem Regex-Lernprogramm und wählen Sie Reguläre Ausdrücke beherrschen .

    
jason 04.12.2009 04:18
quelle
6

Original: /([^.]*)\.(.*)/

Teilen Sie dies als:
[1] ([^.]*) : Er sagt, dass alle Charaktere außer . [ period ]
übereinstimmen [2] \. : Entspricht einer Periode
[3] (.*) : Entspricht einem beliebigen Zeichen

so wird es [1] Passe alle Charaktere an, die nicht . [ period ] [2] sind, bis du .[ period ] findest und dann [3] mit allen Charakteren übereinstimmt.

    
Rakesh Juyal 04.12.2009 08:02
quelle
4

Alles außer einem Punkt, gefolgt von einem Punkt, gefolgt von allem.

Sie können Regexes auf regexpal

testen     
hasen 04.12.2009 04:18
quelle
3

Dies ist ein regulärer Ausdruck, der grob nach einer Zeichenfolge sucht, die keinen Punkt enthält, gefolgt von einem Punkt und einer Zeichenfolge, die beliebige Zeichen enthält.

    
John Weldon 04.12.2009 04:17
quelle
2

Das ist ein regulärer Ausdruck. Reguläre Ausdrücke sind mächtige Werkzeuge, wenn Sie sie richtig verwenden.

Dieser spezielle Regex extrahiert den Dateinamen und die Erweiterung aus einer Zeichenfolge, die wie "file.ext" aussieht.

    
Anon. 04.12.2009 04:18
quelle
2

Es ist ein regulärer Ausdruck, der eine Zeichenfolge in zwei Teile aufteilt: alles vor der ersten Periode und dann den Rest. Die meisten Regex-Engines (einschließlich des Javascript-Skripts) erlauben Ihnen, auf diese Teile des Strings separat zuzugreifen (mit $ 1 für den ersten Teil und $ 2 für den zweiten Teil).

    
Yuliy 04.12.2009 04:20
quelle
1

Dies ist ein regulärer Ausdruck mit etwas fortgeschrittener Verwendung.

Betrachten Sie eine einfachere Version: /[^.]*\..*/ , die wie oben ohne Klammern ist. Dies entspricht nur einer beliebigen Zeichenfolge mit mindestens einem Punkt. Wenn die Klammern hinzugefügt werden und eine Übereinstimmung auftritt, enthalten die Variablen und die übereinstimmenden Teile aus den Klammern. Der erste wird alles vor dem ersten Punkt haben. Der zweite Teil wird alles nach dem ersten Punkt haben.

Beispiele:

%Vor%     
Joy Dutta 04.12.2009 04:29
quelle
1

Dieser reguläre Ausdruck generiert zwei übereinstimmende Ausdrücke, die abgerufen werden können.

Die beiden Teile sind die Zeichenfolge vor dem ersten Punkt (die leer sein kann) und die Zeichenfolge nach dem ersten Punkt (der andere Punkte enthalten kann).

Die einzige Einschränkung für die Eingabe besteht darin, dass sie mindestens einen Punkt enthält. Es wird übereinstimmen "." im Gegensatz zu einigen der anderen Antworten, aber die abgerufenen Gruppen werden leer sein.

    
UncleO 04.12.2009 04:38
quelle
0

Es handelt sich um einen regulären Ausdruck, bei dem es sich im Grunde genommen um ein Zeichenmuster handelt, mit dem ein anderes Zeichenmuster beschrieben wird. Ich habe einmal regexps verwendet, um eine E-Mail-Adresse in einer Textdatei zu finden, und sie kann verwendet werden, um so ziemlich jedes Textmuster in einem größeren Textkörper zu finden, vorausgesetzt, Sie schreiben die Regexp richtig.

    
cornjuliox 04.12.2009 07:53
quelle
-2

die. Das Zeichen passt auf ein beliebiges Zeichen mit Ausnahme der Zeilenumbruchzeichen \ r oder \ n.

negiert das, was darauf folgt (in diesem Fall der Punkt)

das * bedeutet "null oder mehr mal"

die Klammern gruppieren und erfassen,

Mit diesem Befehl können Sie ein Sonderzeichen (wie den Punkt oder den Stern) zuordnen

Das bedeutet ([^.]*) bedeutet, dass jeder Zeilenumbruch null oder mehrmals wiederholt wird (es verschlingt nur Wagenrücklauf).

this (.*) part bedeutet eine Zeichenkette, die null oder mehrere Male (außer den Zeilenumbrüchen) ist

und die \. bedeuten einen echten Punkt

Damit würde das Ganze zu null oder mehr Zeilenumbrüchen passen, gefolgt von einem Punkt gefolgt von einer beliebigen Anzahl von Zeichen.

Weitere Informationen und eine wirklich gute Referenz zu Regular Expressions finden Sie unter Ссылка

    
Joe Basirico 04.12.2009 04:28
quelle

Tags und Links