Detaillierte Erklärung der regulären Ausdrücke von Nginx

Detaillierte Erklärung der regulären Ausdrücke von Nginx

Nginx (Engine x) ist ein leistungsstarker HTTP- und Reverse-Proxy-Server sowie ein IMAP/POP3/SMTP-Server. Nginx wurde von Igor Sysoev für die am zweithäufigsten besuchte Website in Russland, Rambler.ru (russisch: Рамблер), entwickelt. Die erste öffentliche Version 0.1.0 wurde am 4. Oktober 2004 veröffentlicht.

Es veröffentlicht seinen Quellcode unter einer BSD-ähnlichen Lizenz und ist für seine Stabilität, seinen umfangreichen Funktionsumfang, seine Beispielkonfigurationsdateien und seinen geringen Systemressourcenverbrauch bekannt. Am 1. Juni 2011 wurde nginx 1.0.4 veröffentlicht.

Nginx ist ein leichtgewichtiger Webserver/Reverse-Proxyserver und E-Mail-Proxyserver (IMAP/POP3), der unter einem BSD-ähnlichen Protokoll veröffentlicht wird. Seine Merkmale sind, dass es weniger Speicher beansprucht und starke Parallelitätsfähigkeiten besitzt. Tatsächlich sind die Parallelitätsfähigkeiten von nginx besser als die von Webservern desselben Typs. Zu den Benutzern von nginx-Websites auf dem chinesischen Festland zählen: Baidu, JD.com, Sina, NetEase, Tencent, Taobao usw.

Heute werden wir über die Verwendungsregeln seiner regulären Ausdrücke sprechen. Ich werde kurz einige Beispiele geben und sie dann erklären.

Was ist ein regulärer Ausdruck

Reguläre Ausdrücke werden auch als reguläre Ausdrücke bezeichnet. Regulärer Ausdruck (englisch: Regular Expression, im Code oft als regex, regexp oder RE abgekürzt), ein Konzept in der Informatik. Reguläre Ausdrücke werden häufig verwendet, um Text abzurufen und zu ersetzen, der einem bestimmten Muster (einer Regel) entspricht.

Viele Programmiersprachen unterstützen die Stringmanipulation mit regulären Ausdrücken. Beispielsweise ist in Perl eine leistungsstarke Engine für reguläre Ausdrücke integriert. Das Konzept der regulären Ausdrücke wurde ursprünglich durch Unix-Tools wie sed und grep populär gemacht. Reguläre Ausdrücke werden oft als „regex“ abgekürzt, der Singular ist regexp, regex und der Plural ist regexps, regexes und regexen.

Reguläre Ausdrücke bestehen aus einigen allgemeinen Zeichen und einigen Metazeichen. Zu den gewöhnlichen Zeichen zählen Groß- und Kleinbuchstaben sowie Zahlen, während Metazeichen spezielle Bedeutungen haben, die wir weiter unten erläutern.

Im einfachsten Fall sieht ein regulärer Ausdruck wie ein gewöhnlicher Suchbegriff aus. Beispielsweise enthält der reguläre Ausdruck „testing“ keine Metazeichen. Er kann mit Zeichenfolgen wie „testing“ und „testing123“ übereinstimmen, aber nicht mit „Testing“.

Um reguläre Ausdrücke wirklich gut nutzen zu können, ist das richtige Verständnis der Metazeichen das Wichtigste. In der folgenden Tabelle sind alle Metazeichen und eine kurze Beschreibung aufgeführt.

Metazeichen

beschreiben

\

Der nächste Zeichenmarker, ein Rückverweis oder ein oktales Escape-Zeichen. Beispielsweise entspricht "\\n" \n. "\n" entspricht einem Zeilenumbruchzeichen. Die Sequenz "\\" entspricht "\" und "\(" entspricht "(". Dies entspricht dem Konzept des "Escape-Zeichens" in vielen Programmiersprachen.

^

Passt zum Anfang einer Eingabezeile. Wenn die Eigenschaft „Multiline“ des RegExp-Objekts gesetzt ist, entspricht ^ auch der Position nach „\n“ oder „\r“.

$

Stimmt mit dem Ende einer Eingabezeile überein. Wenn die Eigenschaft „Multiline“ des RegExp-Objekts gesetzt ist, entspricht „$“ auch der Position vor „\n“ oder „\r“.

*

Stimmt beliebig oft mit dem vorhergehenden Teilausdruck überein. Beispielsweise entspricht zo* „z“, aber auch „zo“ und „zoo“. *Entspricht {0,}.

+

Stimmt ein- oder mehrmals mit dem vorhergehenden Unterausdruck überein (größer oder gleich 1 Mal). Beispielsweise entspricht „zo+“ den Begriffen „zo“ und „zoo“, aber nicht „z“. + ist gleichbedeutend mit {1,}.

?

Stimmt null- oder einmal mit dem vorhergehenden Unterausdruck überein. Beispielsweise entspricht „do(es)?“ entweder „do“ oder „does“. ?Entspricht {0,1}.

{N}

n ist eine nicht negative Ganzzahl. Stimmt mit einer bestimmten Anzahl von Malen überein. Beispielsweise entspricht „o{2}“ nicht dem „o“ in „Bob“, wohl aber den beiden o’s in „food“.

{N,}

n ist eine nicht negative Ganzzahl. Mindestens n-mal übereinstimmen. Beispielsweise entspricht „o{2,}“ nicht dem „o“ in „Bob“, aber allen o’s in „foooood“. „o{1,}“ ist gleichbedeutend mit „o+“. „o{0,}“ ist gleichbedeutend mit „o*“.

{n,m}

Sowohl m als auch n sind nicht-negative ganze Zahlen, wobei n<=m. Mindestens n-mal und höchstens m-mal übereinstimmen. Beispielsweise entspricht „o{1,3}“ den ersten drei o’s in „fooooood“ als Gruppe und den letzten drei o’s als Gruppe. „o{0,1}“ ist gleichbedeutend mit „o?“. Bitte beachten Sie, dass zwischen dem Komma und den beiden Zahlen kein Leerzeichen stehen darf.

?

Wenn dieses Zeichen unmittelbar auf einen der anderen Qualifizierer (*, +, ?, {n}, {n,}, {n,m}) folgt, ist das Übereinstimmungsmuster nicht gierig. Im nicht gierigen Modus wird so wenig wie möglich von der gesuchten Zeichenfolge abgeglichen, während im standardmäßigen gierigen Modus so viel wie möglich von der gesuchten Zeichenfolge abgeglichen wird. Beispielsweise wird bei der Zeichenfolge „oooo“ „o+“ mit so vielen „o“s wie möglich übereinstimmen, was zu [„oooo“] führt, während „o+?“ mit so wenigen „o“s wie möglich übereinstimmen wird, was zu [‚o‘, ‚o‘, ‚o‘, ‚o‘] führt.

.Punkt

Stimmt mit jedem einzelnen Zeichen außer "\n" und "\r" überein. Um jedes Zeichen einschließlich "\n" und "\r" abzugleichen, verwenden Sie ein Muster wie "[\s\S]".

(Muster)

Stimmt mit dem Muster überein und ruft die Übereinstimmung ab. Die erhaltenen Übereinstimmungen können aus der generierten Matches-Sammlung abgerufen werden, indem die SubMatches-Sammlung in VBScript und die Eigenschaften $0...$9 in JScript verwendet werden. Um ein Klammernzeichen zu finden, verwenden Sie "\(" oder "\)".

(?:Muster)

Keine Erfassungsübereinstimmung, Musterübereinstimmung, aber keine Erfassung von Übereinstimmungsergebnissen, keine Speicherung zur späteren Verwendung. Dies ist nützlich, wenn Sie das Oder-Zeichen "(|)" verwenden, um Teile eines Musters zu kombinieren. Beispielsweise ist „industr(?:y|ies)“ ein kürzerer Ausdruck als „industry|industries“.

(?=Muster)

Nicht-Erfassungs-Matching, positiver positiver Lookahead, gleicht die Suchzeichenfolge am Anfang eines beliebigen Zeichenfolgen-Matching-Musters ab und die Übereinstimmung muss für die spätere Verwendung nicht erfasst werden. Beispielsweise kann „Windows(?=95|98|NT|2000)“ mit „Windows“ in „Windows2000“ übereinstimmen, aber nicht mit „Windows“ in „Windows3.1“. Lookahead verbraucht keine Zeichen, d. h., nachdem eine Übereinstimmung aufgetreten ist, beginnt die Suche nach der nächsten Übereinstimmung unmittelbar nach der letzten Übereinstimmung und nicht nach den Zeichen, die den Lookahead enthalten.

(?!Muster)

Nicht erfassende Übereinstimmung, positiver negativer Lookahead, gleicht die Suchzeichenfolge am Anfang jeder Zeichenfolge ab, die nicht dem Muster entspricht. Diese Übereinstimmung muss nicht für die spätere Verwendung erfasst werden. Beispielsweise kann „Windows(?!95|98|NT|2000)“ mit „Windows“ in „Windows3.1“ übereinstimmen, aber nicht mit „Windows“ in „Windows2000“.

(?<=Muster)

Nichterfassungsabgleich, umgekehrte positive Vorschau, ähnelt der vorwärts positiven Vorschau, jedoch in die entgegengesetzte Richtung. Beispielsweise entspricht „(?<=95|98|NT|2000)Windows“ „Windows“ in „2000Windows“, aber nicht „Windows“ in „3.1Windows“.

"(?<=95|98|NT|2000)Windows" meldet derzeit einen Fehler im Re-Modultest in Python 3.6. Die Längen der mit "|" verbundenen Zeichenfolgen müssen gleich sein. Hier beträgt die Länge von "95|98|NT" 2 und die Länge von "2000" 4, was zu einem Fehler führt.

(?<!patte_n)

Non-Akquisition-Matching, Reverse Negative Lookahead, ähnelt Positive Negative Lookahead, jedoch in die entgegengesetzte Richtung. Beispielsweise kann „(?<!95|98|NT|2000)Windows“ mit „Windows“ in „3.1Windows“ übereinstimmen, aber nicht mit „Windows“ in „2000Windows“. Dieser Ort ist falsch. Es liegt ein Problem vor.

Die hier verwendeten oder Elemente dürfen nicht länger als 2 Ziffern sein, z. B. „(?<!95|98|NT|20)Windows ist korrekt“, „(?<!95|980|NT|20)Windows ist ein Fehler“. Bei alleiniger Verwendung gibt es keine Einschränkung, z. B. ist „(?<!2000)Windows“ eine korrekte Übereinstimmung.

Wie oben, hier in Python 3.6 muss die Zeichenfolgenlänge im Re-Modul konsistent sein, nicht unbedingt 2, beispielsweise ist auch „(?<!1995|1998|NTNT|2000)Windows“ akzeptabel.

x|y

Stimmt mit x oder y überein. Beispielsweise entspricht „z|food“ „z“ oder „food“ (Seien Sie hier vorsichtig). „[zf]ood“ passt zu „zood“ oder „food“.

[xyz]

Eine Sammlung von Charakteren. Stimmt mit einem beliebigen der enthaltenen Zeichen überein. Beispielsweise kann „[abc]“ mit dem „a“ in „plain“ übereinstimmen.

[^xyz]

Eine Reihe negativer Zeichen. Stimmt mit jedem Zeichen überein, das nicht in der Zeichenfolge enthalten ist. Beispielsweise kann „[^abc]“ mit jedem Zeichen in „plain“ übereinstimmen.

[az]

Zeichenbereich. Stimmt mit jedem Zeichen im angegebenen Bereich überein. Beispielsweise entspricht „[az]“ jedem Kleinbuchstaben im Bereich „a“ bis „z“.

Hinweis: Ein Bindestrich kann nur dann einen Bereich von Zeichen darstellen, wenn er sich innerhalb einer Zeichengruppe befindet und zwischen zwei Zeichen erscheint; wenn er am Anfang einer Zeichengruppe erscheint, kann er nur den Bindestrich selbst darstellen.

[^az]

Negativer Zeichenbereich. Stimmt mit jedem Zeichen überein, das nicht im angegebenen Bereich liegt. Beispielsweise entspricht „[^az]“ jedem Zeichen, das nicht im Bereich „a“ bis „z“ liegt.

\B

Stimmt mit der Grenze eines Wortes überein, d. h. mit der Position zwischen dem Wort und dem Leerzeichen (d. h. es gibt in regulären Ausdrücken zwei Konzepte für „Übereinstimmung“, eines ist die Übereinstimmung von Zeichen und das andere ist die Übereinstimmung von Positionen. Das \b stimmt hier mit der Position überein). Beispielsweise kann „er\b“ mit „er“ in „never“ übereinstimmen, aber nicht in „verb“; „\b1_“ kann mit „1_“ in „1_23“ übereinstimmen, aber nicht in „21_3“.

\B

Stimmt mit einer Nicht-Wortgrenze überein. „er\B“ kann mit dem „er“ in „verb“ übereinstimmen, aber nicht mit dem „er“ in „never“.

\cx

Stimmt mit dem durch x angegebenen Steuerzeichen überein. Beispielsweise entspricht \cM einem Strg-M oder einem Wagenrücklauf. Der Wert von x muss einer von AZ oder az sein. Andernfalls wird c als wörtliches „c“-Zeichen behandelt.

\D

Stimmt mit einem Ziffernzeichen überein. Entspricht [0-9]. grep muss -P hinzufügen, reguläre Ausdrücke in Perl unterstützen das

\D

Stimmt mit einem Zeichen überein, das keine Ziffer ist. Entspricht [^0-9]. Grep muss -P hinzufügen, reguläre Ausdrücke in Perl unterstützen das

\F

Stimmt mit einem Seitenvorschubzeichen überein. Entspricht \x0c und \cL.

\N

Stimmt mit einem Zeilenumbruchzeichen überein. Entspricht \x0a und \cJ.

\R

Entspricht einem Wagenrücklaufzeichen. Entspricht \x0d und \cM.

\S

Stimmt mit jedem unsichtbaren Zeichen überein, einschließlich Leerzeichen, Tabulator, Seitenvorschub usw. Entspricht [ \f\n\r\t\v].

\S

Stimmt mit jedem sichtbaren Zeichen überein. Entspricht [^ \f\n\r\t\v].

\T

Stimmt mit einem Tabulatorzeichen überein. Entspricht \x09 und \cI.

\v

Entspricht einem vertikalen Tabulatorzeichen. Entspricht \x0b und \cK.

\w

Stimmt mit jedem Wortzeichen überein, einschließlich dem Unterstrich. Ähnlich, aber nicht gleichwertig mit „[A-Za-z0-9_]“, wobei „Wort“-Zeichen den Unicode-Zeichensatz verwenden.

\W

Stimmt mit jedem Zeichen überein, das kein Wort ist. Entspricht „[^A-Za-z0-9_]“.

\xn

Stimmt mit n überein, wobei n ein hexadezimaler Escape-Wert ist. Hexadezimale Escape-Werte müssen genau zwei Ziffern lang sein. Beispielsweise entspricht "\x41" "A". "\x041" ist gleichbedeutend mit "\x04&1". In regulären Ausdrücken kann die ASCII-Kodierung verwendet werden.

\num

Stimmt mit num überein, wobei num eine positive Ganzzahl ist. Ein Verweis auf die abgerufene Übereinstimmung. Beispielsweise entspricht "(.)\1" zwei aufeinanderfolgenden identischen Zeichen.

\N

Identifiziert einen oktalen Escape-Wert oder eine Rückreferenz. Wenn vor \n mindestens n erfasste Unterausdrücke stehen, dann ist n eine Rückreferenz. Andernfalls, wenn n eine Oktalziffer (0-7) ist, dann ist n ein oktaler Escape-Wert.

\nm

Identifiziert einen oktalen Escape-Wert oder eine Rückreferenz. Wenn vor \nm mindestens nm erfasste Unterausdrücke stehen, dann ist nm eine Rückreferenz. Wenn vor \nm mindestens n „Gets“ stehen, dann ist n eine Rückreferenz, gefolgt vom Literal m. Wenn keine der vorherigen Bedingungen erfüllt ist und sowohl n als auch m Oktalziffern (0-7) sind, entspricht \nm dem oktalen Escape-Wert nm.

\nml

Wenn n eine Oktalziffer (0-7) ist und sowohl m als auch l Oktalziffern (0-7) sind, entspricht dies dem oktalen Escape-Wert nml.

\un

Stimmt mit n überein, wobei n ein Unicode-Zeichen ist, das durch vier hexadezimale Ziffern dargestellt wird. Beispielsweise entspricht \u00A9 dem Copyright-Symbol (&copy;).

\p{P}

Das kleine p steht für Property, weist auf eine Unicode-Eigenschaft hin und wird als Präfix für Unicode-reguläre Ausdrücke verwendet. Das „P“ in der Klammer weist auf eines der sieben Zeichenattribute des Unicode-Zeichensatzes hin: Satzzeichen.

Die anderen sechs Eigenschaften sind:

L: Buchstabe;

M: Markierungssymbol (tritt meist nicht alleine auf);

Z: Trennzeichen (wie Leerzeichen, Zeilenumbruch usw.);

S: Symbol (wie mathematische Symbole, Währungssymbole usw.);

N: Zahlen (wie arabische Ziffern, römische Ziffern usw.);

C: Andere Charaktere.

*Hinweis: Diese Syntax wird von einigen Sprachen nicht unterstützt, z. B. JavaScript.

\<

\>

Stimmt mit dem Anfang (\<) und Ende (\>) eines Wortes überein. Beispielsweise kann der reguläre Ausdruck \<the\> mit „the“ in der Zeichenfolge „for the wise“ übereinstimmen, aber nicht mit „the“ in der Zeichenfolge „otherwise“. Hinweis: Dieses Metazeichen wird nicht von jeder Software unterstützt.
( ) Definieren Sie den Ausdruck zwischen ( und ) als „Gruppe“ und speichern Sie die zu diesem Ausdruck passenden Zeichen in einem temporären Bereich (in einem regulären Ausdruck können bis zu 9 Zeichen gespeichert werden), der mit den Symbolen \1 bis \9 referenziert werden kann.
| Führen Sie eine logische „ODER“-Operation für die beiden übereinstimmenden Bedingungen durch. Beispielsweise entspricht der reguläre Ausdruck (him|her) den Werten „it belong to him“ und „it belong to her“, aber nicht „it belong to them.“. Hinweis: Dieses Metazeichen wird nicht von jeder Software unterstützt.

Beispiel 1: Automatische Umleitung des Wap-seitigen Zugriffs auf den PC-seitigen Domänennamen

Die Voraussetzung in diesem Fall ist, dass wenn ich mit einem Mobiltelefon auf den Domänennamen www.baidu.com zugreife, dieser automatisch in m.baidu.com umgeschrieben wird. Wenn ich den Domänennamen www.souhu.com besuche, wird er in den Domänennamen m.souhu.com umgeschrieben.

wenn ( $server_name ~ ((|www.|)([wenn ( $ser|
 #Filtern Sie den Hauptdomänennamen, wenn ( $server_name ~ ((www.|)([\S\s]*)) ) {
  setze $domain $3;
 }

 #Setzen Sie den Anfangswert set $temp 0;

 #Beurteilen Sie, ob es sich um einen Zahlungsdomänennamen handelt, wenn ( $host ~* (pay|zf) ) {
  setze $temp "${temp}1";
 }

 #Beurteilen Sie, ob es sich um ein Mobiltelefon handelt, wenn ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
  setze $temp "${temp}2";
 }

 #Beurteilen Sie, ob gesprungen werden soll, wenn ( $temp = "02" ) {
  umschreiben ^(.*) https://app.$domain permanent;
 }

Skriptlogikanalyse:

Zuerst müssen wir den Hauptdomänennamen abrufen, also müssen wir reguläre Ausdrücke verwenden, um ihn abzugleichen. Wenn wir den Domänennamen www.baidu.com als Beispiel nehmen, sehen wir als Erstes das Feld www., aber es gibt auch eine Situation, in der Benutzer direkt baidu.com eingeben können, um darauf zuzugreifen, also verwenden wir (www.|), um es hier abzugleichen, und gleichen dann dieses Feld ab. Die $3 unten bedeutet, den Wert in der dritten Klammer zu nehmen und ihn schließlich der Variable $a zuzuweisen. Der nächste Schritt besteht darin, die integrierte Variable $http_user_agent zu verwenden, um zu bestimmen, wie der Benutzer auf die Site zugreift, und dann eine Umleitungsoperation durchzuführen.

Beispiel 2: Nginx IP-Whitelist

Voraussetzung in diesem Fall ist, dass unser Backend-Zugriff nur bestimmten IP-Adressen den Zugriff erlaubt. Greifen andere IP-Adressen darauf zu, springen wir auf eine andere Fehlerseite oder direkt zurück auf die Startseite.

#Anfangswert festlegen: $my_ip 0;

#Beurteilen Sie, ob es sich um die angegebene Whitelist handelt, wenn ( $http_x_forwarded_for ~* "10.0.0.1|172.16.0.1" ){
 setze $my_ip 1;
}

# Leite eine IP um, die nicht auf der Whitelist steht, wenn ( $my_ip = 0 ) {
 schreibe ^/$ /40x.html neu;
}

Skriptlogikanalyse:

Dies ist eigentlich dasselbe wie die obige Beurteilung, ob der Benutzer von einem Computer oder einem Mobiltelefon aus zugreift, aber der einzige Unterschied sind die integrierten Variablen. In den integrierten Variablen in Nginx ist $http_x_forwarded_for die tatsächliche IP-Adresse, auf die der Kunde zugreift. Daher verwenden wir einfach diese integrierte Variable zur Beurteilung und fügen gleichzeitig einen Anfangswert hinzu.

Beispiel 3: URL-Adresse umschreiben und übermittelten Inhalt verbergen

Die Anforderung in diesem Fall besteht darin, dass nach dem Absenden eines Formularinhalts die URL-Adresse mit Ausnahme einiger Parameter angezeigt wird, z. B. http://baidu.com/index.php?user=admin&pass=123, und wir die URL in http://baidu.com/index umschreiben müssen.

neu schreiben ^/(\w+)/(\w+)/z(\d+) /$1/$2/$3/$arg_x/$arg_y? permanent;
umschreiben ^/(\w+)/(\w+)/(\d+)/(\d+)/(\d+) /$1/$2/$3/$4_$5.png permanent;

Skriptlogikanalyse:

Denken wir zunächst über die Entwicklung der URL nach, http://baidu.com/index.php?user=admin&pass=123 => http://baidu.com/index.php/user/admin/pass/123 => http://baidu.com/index, und gehen dann entsprechend der Entwicklung Schritt für Schritt vor. Die reguläre Übereinstimmung beim Umschreiben von nginx stimmt nicht mit dem Parameter nach dem Fragezeichen überein, daher müssen Sie $arg_{Parametername} verwenden, um den Parameter beizubehalten, und die Übereinstimmungsregel muss mit einem Fragezeichen enden. Schließlich müssen einige andere zu ersetzende Elemente abgeglichen werden, und das Umschreiben ist abgeschlossen.

Zusammenfassen

Reguläre Ausdrücke sind nicht schwierig. Es gibt nur wenige häufig verwendete übereinstimmende Metazeichen. Man könnte auch sagen, dass reguläre Ausdrücke ein Socket-Spiel sind, aber dieses Spiel ist sehr weit verbreitet.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Nginx if-Anweisung plus regulärer Ausdruck, um eine Zeichenfolgenkürzung zu erreichen
  • Detaillierte Erläuterung des regulären Ausdrucksbeispiels für die Nginx-Standortkonfiguration
  • Nginx pseudostatisch Rewrite regelmäßige Ressourcenübersicht
  • Beispiel für die reguläre Umschreibmethode für Nginx Rewrite (Matching)
  • nginx Konfigurationsort Zusammenfassungsort Regelmäßiges Schreiben und Umschreiben von Regeln
  • Regelmäßige Python-Analyse des Nginx-Zugriffsprotokolls
  • So verwenden Sie reguläre Ausdrücke, um Platzhalterdomänennamen in Nginx automatisch abzugleichen
  • So verwenden Sie nginx, um bestimmte URL-Anfragen durch reguläre Ausdrücke abzufangen
  • Einführung in die Parameter und Regeln für reguläre Ausdrücke bei Nginx

<<:  Zusammenfassung der Betriebsaufzeichnungen zum Ändern der MyISAM-Speicher-Engine in Innodb in MySQL

>>:  Mehrere Möglichkeiten zur Implementierung der Vererbung in JavaScript

Artikel empfehlen

Deaktivieren der AutoVervollständigen-Funktion im Eingabefeld

Jetzt können wir ein Eingabeattribut namens „Autov...

setup+ref+reactive implementiert Vue3-Reaktionsfähigkeit

Das Setup wird zum Schreiben kombinierter APIs ve...

So verbergen und entfernen Sie Bildlaufleisten in HTML

1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...

Zwei Ideen zur Implementierung der horizontalen Datenbanksegmentierung

Einführung Aufgrund der zunehmenden Popularität v...

Detaillierte Erklärung von PID und Socket in MySQL

Inhaltsverzeichnis 1. Einführung in die PID-Datei...

JavaScript generiert zufällige Grafiken durch Klicken

In diesem Artikel wird der spezifische Code von J...

React Native realisiert den Auf- und Ab-Pull-Effekt der Überwachungsgeste

React Native implementiert die Überwachungsgeste ...

Gogs+Jenkins+Docker automatisierte Bereitstellung von .NetCore-Schritten

Inhaltsverzeichnis Umgebungsbeschreibung Docker-I...