Heim Backend-Entwicklung C++ Wie verwende ich reguläre Ausdrucksfunktionen in C++?

Wie verwende ich reguläre Ausdrucksfunktionen in C++?

Nov 18, 2023 am 11:41 AM
regulärer C++-Ausdruck Verwenden Sie C++ regulär reguläre C++-Funktion

Wie verwende ich reguläre Ausdrucksfunktionen in C++?

Wie verwende ich die reguläre Ausdrucksfunktion in C++?

Reguläre Ausdrücke sind ein leistungsstarkes Textverarbeitungstool, mit dem Muster im Text abgeglichen, gesucht und ersetzt werden können. In C++ können wir die Funktionsbibliothek für reguläre Ausdrücke verwenden, um Text zu verarbeiten. In diesem Artikel wird die Verwendung regulärer Ausdrucksfunktionen in C++ vorgestellt.

Zuerst müssen wir die Regex-Header-Datei aus der C++-Standardbibliothek einbinden:

#include <regex>
Nach dem Login kopieren

Als nächstes können wir mit std::regex ein reguläres Ausdrucksobjekt deklarieren und ihm das passende Muster übergeben. Wenn wir beispielsweise eine Zeichenfolge abgleichen möchten, die aus mehreren Buchstaben und Zahlen besteht, können wir den folgenden Code verwenden:

std::regex pattern("[a-zA-Z0-9]+");
Nach dem Login kopieren

Bei der Verwendung regulärer Ausdrücke können wir auch einige Flags angeben, um das Abgleichverhalten zu ändern. Zu den gängigen Flags gehören:

  • std::regex_constants::ECMAScript: Verwenden Sie die Syntax für reguläre Ausdrücke im ECMAScript-Stil;
  • std::regex_constants::grep: Verwenden Sie die Syntax für reguläre Ausdrücke im Grep-Stil; : Verwenden Sie die erweiterte POSIX-Syntax für reguläre Ausdrücke.
  • std::regex_constants::icase: Groß- und Kleinschreibung ignorieren.
  • Sie können ein passendes Logo entsprechend der tatsächlichen Situation auswählen.
  • Bevor wir den regulären Ausdrucksabgleich durchführen, müssen wir ein std::smatch-Objekt definieren, um die Abgleichsergebnisse zu speichern. std::smatch ist ein Container mit übereinstimmenden Ergebnissen, der mehrere übereinstimmende Ergebnisse speichern kann. Zum Beispiel:
std::smatch matches;
Nach dem Login kopieren

Als nächstes können wir die Funktion std::regex_match verwenden, um zu prüfen, ob eine Zeichenfolge mit einem bestimmten regulären Ausdruck übereinstimmt. Der Prototyp dieser Funktion lautet wie folgt:

bool std::regex_match(const std::string& str, std::smatch& match, const std::regex& pattern);
Nach dem Login kopieren

Unter diesen ist str die abzugleichende Zeichenfolge, match ist das std::smatch-Objekt, das zum Speichern der Abgleichsergebnisse verwendet wird, und pattern ist das abzugleichende reguläre Ausdrucksobjekt. Die Funktion gibt einen Bool-Wert zurück, der angibt, ob die Übereinstimmung erfolgreich ist.

Das Folgende ist ein Beispielcode, der zeigt, wie man die Funktion std::regex_match verwendet, um zu überprüfen, ob eine Zeichenfolge eine gültige E-Mail-Adresse ist:

#include 
#include <regex>

int main()
{
    std::string email = "example@example.com";
    std::regex pattern("\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b");
    std::smatch matches;

    if (std::regex_match(email, matches, pattern))
    {
        std::cout << "Valid email address!" << std::endl;
    }
    else
    {
        std::cout << "Invalid email address!" << std::endl;
    }

    return 0;
}
Nach dem Login kopieren

Zusätzlich zur Verwendung der Funktion std::regex_match für den vollständigen Abgleich können wir dies auch tun Verwenden Sie die Funktion std ::regex_search, um einen teilweisen Abgleich durchzuführen. Der Prototyp der Funktion std::regex_search lautet wie folgt:

bool std::regex_search(const std::string& str, std::smatch& match, const std::regex& pattern);
Nach dem Login kopieren

Die Funktion std::regex_search durchsucht eine Zeichenfolge nach einer beliebigen Teilzeichenfolge, die mit dem angegebenen regulären Ausdruck übereinstimmt, und speichert die übereinstimmenden Ergebnisse in einem std::smatch-Objekt.

Hier ist ein Beispielcode, der zeigt, wie Sie mit der Funktion std::regex_search nach allen Ganzzahlen in einer Zeichenfolge suchen:

#include 
#include <regex>

int main()
{
    std::string text = "abc123def456ghi789";
    std::regex pattern("\d+");
    std::smatch matches;

    while (std::regex_search(text, matches, pattern))
    {
        std::cout << matches.str() << std::endl;
        text = matches.suffix().str();
    }

    return 0;
}
Nach dem Login kopieren

Das obige Beispiel gibt Folgendes aus: „123“, „456“ und „789“ bzw. Zeichen Drei ganze Zahlen in der Zeichenfolge.

Zusätzlich zum Abgleichen und Suchen können wir auch die Funktion std::regex_replace verwenden, um den Teil der Zeichenfolge zu ersetzen, der mit dem regulären Ausdruck übereinstimmt. Der Prototyp der Funktion std::regex_replace lautet wie folgt:

std::string std::regex_replace(const std::string& str, const std::regex& pattern, const std::string& replacement);
Nach dem Login kopieren

Die Funktion std::regex_replace durchsucht die Zeichenfolge str nach allen Teilzeichenfolgen, die mit dem angegebenen regulären Ausdrucksmuster übereinstimmen, und ersetzt sie durch die Ersatzzeichenfolge.

Hier ist ein Beispielcode, der zeigt, wie Sie mit der Funktion std::regex_replace alle Leerzeichen in einer Zeichenfolge durch Unterstriche ersetzen:

#include 
#include <regex>

int main()
{
    std::string text = "Hello,   World!";
    std::regex pattern("\s+");
    std::string replacement = "_";

    std::string result = std::regex_replace(text, pattern, replacement);
    std::cout << result << std::endl;

    return 0;
}
Nach dem Login kopieren

Das obige Beispiel gibt Folgendes aus: „Hello,_World!“ und ersetzt alle Leerzeichen durch Unterstriche.

Das Obige ist eine Einführung in die Verwendung der regulären Ausdrucksfunktion in C++. Durch die Verwendung regulärer Ausdrücke können wir Zeichenfolgen effektiv verarbeiten und flexiblere und leistungsfähigere Textverarbeitungsfunktionen erreichen. Ich hoffe, dass dieser Artikel Ihnen hilft, reguläre Ausdrucksfunktionen in C++ zu verstehen und zu verwenden.

Das obige ist der detaillierte Inhalt vonWie verwende ich reguläre Ausdrucksfunktionen in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Mar 03, 2025 pm 05:52 PM

In diesem Artikel werden die Funktionstypen zur Rückgabe von Funktionen (int, float, char usw.), abgeleitet (Arrays, Zeiger, Strukturen) und Hohlraumtypen enthält. Der Compiler bestimmt den Rückgabetyp über die Funktionserklärung und die Rückgabeerklärung unter der Durchsetzung

GULC: C -Bibliothek von Grund auf neu gebaut GULC: C -Bibliothek von Grund auf neu gebaut Mar 03, 2025 pm 05:46 PM

GULC ist eine Hochleistungs-C-Bibliothek, die minimale Overheads, aggressive Einbeziehung und Compiler-Optimierung priorisiert. Ideal für leistungskritische Anwendungen wie Hochfrequenzhandel und eingebettete Systeme, sein Design betont die Einfachheit, Modul

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Mar 03, 2025 pm 05:53 PM

Dieser Artikel erläutert die C -Funktionserklärung im Vergleich zu Definition, Argumentübergabe (nach Wert und Zeiger), Rückgabetwerten und gemeinsamen Fallstricken wie Speicherlecks und Typenfehlanpassungen. Es betont die Bedeutung von Erklärungen für Modularität und Provi

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte Mar 03, 2025 pm 05:53 PM

In diesem Artikel wird die C -Funktion für die String -Fallkonvertierung beschrieben. Es erklärt mit toupper () und tolower () aus ctype.h, iteriert durch Saiten und Handhabung von Null -Terminatoren. Häufige Fallstricke wie das Vergessen von ctype.h und das Modifizieren von String -Literalen sind

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Mar 03, 2025 pm 05:51 PM

Dieser Artikel untersucht die Speicher des C -Funktionsrückgabewerts. Kleine Renditewerte werden in der Regel in Registern für Geschwindigkeit gespeichert. Größere Werte können Zeiger zum Speicher verwenden (Stapel oder Heap), die die Lebensdauer beeinflussen und die manuelle Speicherverwaltung erfordern. Direkt ACC

eindeutiger Gebrauch und Phrasenfreigabe eindeutiger Gebrauch und Phrasenfreigabe Mar 03, 2025 pm 05:51 PM

Dieser Artikel analysiert die vielfältigen Verwendungen des Adjektivs "Unterscheidet", die seine grammatikalischen Funktionen, gemeinsame Phrasen (z. B. "unterscheidet sich von" "deutlich anders") und nuancierte Anwendung in formalen vs. informellen Anwendung

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Mar 12, 2025 pm 04:50 PM

In diesem Artikel werden die C -Standard -Vorlagenbibliothek (STL) erläutert, die sich auf seine Kernkomponenten konzentriert: Container, Iteratoren, Algorithmen und Funktoren. Es wird beschrieben, wie diese interagieren, um die generische Programmierung, die Verbesserung der Codeeffizienz und die Lesbarkeit t zu ermöglichen

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Mar 12, 2025 pm 04:52 PM

Dieser Artikel beschreibt die effiziente Verwendung von STL -Algorithmus in c. Es betont die Auswahl der Datenstruktur (Vektoren vs. Listen), Algorithmus -Komplexitätsanalyse (z. B. std :: sortieren vs. std :: partial_sort), Iteratoranwendungen und parallele Ausführung. Häufige Fallstricke wie

See all articles