Heim Web-Frontend js-Tutorial Tutorial zum Positionsabgleich für reguläre Ausdrücke (mit Code)

Tutorial zum Positionsabgleich für reguläre Ausdrücke (mit Code)

Mar 29, 2018 pm 06:03 PM
位置 匹配 表达式

Dieses Mal bringe ich Ihnen ein Tutorial zum Positionsabgleich (mit Code) für das Tutorial zum regulären Ausdruck. Was sind die Vorsichtsmaßnahmen für die Verwendung des Tutorials zum Positionsabgleich? der eigentliche Kampf Werfen wir einen Blick auf den Fall.

Das Beispiel in diesem Artikel beschreibt das Tutorial zum Positionsabgleich von regulären Ausdrücken. Geben Sie es wie folgt als Referenz an alle weiter:

Hinweis: In allen Beispielen sind die Ergebnisse der regulären Ausdrucksübereinstimmung im Quelltext [ und ], einige Beispiele werden mit Java implementiert. Wenn es sich um die Verwendung regulärer Ausdrücke in Java selbst handelt, wird dies an der entsprechenden Stelle erläutert. Alle Java-Beispiele werden unter JDK1.6.0_13 getestet.

1. Problemeinführung

Wenn wir ein bestimmtes Wort in einem Textstück zuordnen möchten (wobei wir den mehrzeiligen Modus vorerst nicht berücksichtigen). wird später vorgestellt), wir Es könnte so aussehen:

Text:

Gestern ist Geschichte, morgen ist ein Geheimnis, aber heute ist ein Geschenk.

Regulärer Ausdruck :

ist

Ergebnis:

Gestern 【ist】 h【ist】tory, morgen 【ist】 ein Rätsel, aber heute [ist] ein Geschenk.

Analyse: Ursprünglich wollte es nur mit dem Wort „ist“ übereinstimmen, aber es passte auch zu dem, was in anderen Worten enthalten ist. Um dieses Problem zu lösen, verwenden Sie Grenztrennzeichen, d. h. einige

-Metazeichen in regulären Ausdrücken, um anzugeben, wo (oder Grenze) der Abgleichvorgang stattfinden soll.

2. Wortgrenzen

Eine häufig verwendete Grenze ist die durch das Qualifikationsmerkmal b angegebene Wortgrenze, die verwendet wird, um den Anfang und das Ende eines Wortes abzugleichen. Genauer gesagt entspricht es einer Position zwischen einem Zeichen, das zur Bildung eines Wortes verwendet werden kann (Buchstabe, Zahl, Unterstrich, das ist das Zeichen, das mit w übereinstimmt) und einem Zeichen, das nicht zur Bildung eines Wortes verwendet werden kann (wobei W mit Zeichen übereinstimmt). . Schauen wir uns das vorherige Beispiel an:

Text:

Gestern ist Geschichte, morgen ist ein Rätsel, aber heute ist ein Geschenk.

Regulärer Ausdruck:

bisb

Ergebnis:

Gestern [ist] Geschichte, morgen [ist]ein Rätsel, aber heute [ist]a gift.

Analyse: Im Originaltext steht vor und nach dem Wort is ein Leerzeichen, das dem Muster bisb entspricht (Leerzeichen ist eines der Zeichen, die zum Trennen von Wörtern verwendet werden). Das Wort „history“ enthält auch „is“, da davor und danach zwei Zeichen „h“ und „t“ stehen. Keines dieser beiden Zeichen kann mit „b“ übereinstimmen.

Wenn eine Wortgrenze nicht übereinstimmt, wird B verwendet. Zum Beispiel:

Text:

Bitte geben Sie die neunstellige ID ein, wie sie auf Ihrem farbcodierten Passschlüssel erscheint.

Regulärer Ausdruck:

B-B

Ergebnis:

Bitte geben Sie die 【neunstellige】 ID ein, wie sie auf Ihrem farbcodierten 【Passschlüssel】 erscheint.

Analyse: B-B passt zu einem Bindestrich, der keine Wortgrenze vor und nach dem Bindestrich darstellt. Es gibt keine Leerzeichen vor und nach dem Bindestrich, daher können sie abgeglichen werden. Bei der Farbcodierung gibt es Leerzeichen vor und nach dem Bindestrich. Es gibt Leerzeichen, daher kann es nicht übereinstimmen.

3. StringGrenze

Wortgrenze kann verwendet werden, um Positionen im Zusammenhang mit Wörtern abzugleichen (Wortanfang, Wortende, ganzes Wort). usw. warten). Zeichenfolgengrenzen haben einen ähnlichen Zweck, werden jedoch verwendet, um Positionen in Bezug auf Zeichenfolgen abzugleichen (Anfang der Zeichenfolge, Ende der Zeichenfolge, gesamte Zeichenfolge usw.). Es gibt zwei Metazeichen, die zum Definieren von Zeichenfolgengrenzen verwendet werden: eines ist ^, das den Anfang der Zeichenfolge definiert, und das andere ist $, das verwendet wird, um das Ende der Zeichenfolge zu definieren.

Wenn Sie beispielsweise die Rechtmäßigkeit eines XML-Dokuments überprüfen möchten, beginnen alle legalen XML-Dokumente mit :

Text:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="ear">
</project>
Nach dem Login kopieren

正则表达式:^\s*<\?xml.*?\?>

结果:



分析:^匹配一个字符串的开头位置,所以^\s*将匹配一个字符串的开头位置和随后的零个或多个空白字符,因为标签前面允许有空格、制表符、换行符等空白字符。

$元字符符的用法除了位置上的差异外,与^用法完全一样。比如,检查一个html页面是否以结尾,可以用模式:\s*$

四、多行匹配模式

正则表达式可以通过一些特殊的元字符来改变另外一些元字符的行为。可以通过(?m) 来启用多行匹配模式。多行匹配模式将使得正则表达式引擎把行分隔符当做一个字符串分隔符来对待。在多行匹配模式下,^不仅匹配正常的字符串开头,还将匹配行分隔符(换行符)后面的开始位置,$不仅匹配正常的字符串结尾,还将匹配行分隔符(换行符)后面的结束位置。

在使用时,(?m)必须出现在整个模式的最前面。比如,通过正则表达式把一段java代码中的单行注释(以//开始)内容全部找出来。

文本:

publicDownloadingDialog(Frame parent){
     //Callsuper constructor, specifying that dialog box is modal.
     super(parent,true);
     //Setdialog box title.
     setTitle("E-mailClient");
     //Instructwindow not to close when the "X" is clicked.
     setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
     //Puta message with a nice border in this dialog box.
     JPanelcontentPanel = new JPanel();
     contentPanel.setBorder(BorderFactory.createEmptyBorder(5,5, 5, 5));
     contentPanel.add(newJLabel("Downloading messages..."));
     setContentPane(contentPanel);
     //Sizedialog box to components.
     pack();
     //Centerdialog box over application.
     setLocationRelativeTo(parent);
}
Nach dem Login kopieren

正则表达式:(?m)^\s*//.*$

结果:

         publicDownloadingDialog(Frame parent){
【              //Call superconstructor, specifying that dialog box is modal.】                   super(parent,true);
【              //Set dialog boxtitle.】                   setTitle("E-mailClient");
【              //Instruct windownot to close when the "X" is clicked.】                   setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
【              //Put a messagewith a nice border in this dialog box.】                   JPanelcontentPanel = new JPanel();
                   contentPanel.setBorder(BorderFactory.createEmptyBorder(5,5, 5, 5));
                   contentPanel.add(newJLabel("Downloading messages..."));
                   setContentPane(contentPanel);
【              //Size dialog boxto components.】                   pack();
【              //Center dialogbox over application.】                   setLocationRelativeTo(parent);
         }

分析:^\s*//.*$将匹配一个字符串的开始,然后是任意多个空白字符,再后面是//,再往后是任意文本,最后是一个字符串的结束。不过这个模式只能找出第一条注释,加上(?m)前缀后,将把换行符视为一个字符串分隔符,这样就可以把每一行注释匹配出来了。

java代码实现如下(文本保存在text.txt文件中):

public static String getTextFromFile(String path) throws Exception{
  BufferedReader br = new BufferedReader(new FileReader(new File(path)));
  StringBuilder sb = new StringBuilder();
  char[] cbuf = new char[1024];
  int len = 0;
  while(br.ready() && (len = br.read(cbuf)) > 0){
    br.read(cbuf);
    sb.append(cbuf, 0, len);
  }
    br.close();
  return sb.toString();
}
public static void multilineMatch() throws Exception{
  String text = getTextFromFile("E:/text.txt");
  String regex = "(?m)^\\s*//.*$";
  Matcher m = Pattern.compile(regex).matcher(text);
  while(m.find()){
    System.out.println(m.group());
  }
}
Nach dem Login kopieren

输出结果如下:

//Rufen Sie den Superkonstruktor auf und geben Sie an, dass das Dialogfeld modal ist.
//Legen Sie den Titel des Dialogfelds fest.
//Instruieren Sie, dass das Fenster nicht geschlossen wird, wenn auf das „X“ geklickt wird.
//Fügen Sie eine Nachricht mit einem schönen Rahmen in dieses Dialogfeld ein.
//Größe des Dialogfelds auf Komponenten.
//Zentrieren Sie das Dialogfeld über der Anwendung.

5. Zusammenfassung

Reguläre Ausdrücke können nicht nur zum Abgleichen von Textblöcken beliebiger Länge verwendet werden, sondern auch zum Abgleichen von Text, der an bestimmten Positionen in einer Zeichenfolge erscheint. b wird verwendet, um eine Wortgrenze anzugeben (B ist genau das Gegenteil). ^ und $ werden verwendet, um Wortgrenzen anzugeben. Bei Verwendung mit (?m) stimmen ^ und $ auch mit Zeichenfolgen überein, die mit einem Zeilenumbruchzeichen beginnen oder enden. Die Verwendung von Unterausdrücken wird im nächsten Artikel vorgestellt.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website !

Empfohlene Lektüre:

Wie man aufeinanderfolgende Zahlen mit regulären Ausdrücken abgleicht

Entwicklungserfahrung bei der Implementierung des Mindestabgleichs mit regulären Ausdrücken

Das obige ist der detaillierte Inhalt vonTutorial zum Positionsabgleich für reguläre Ausdrücke (mit Code). 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Details zum Aktivieren der Umgebungsvariableneinstellungen unter Windows 11 Details zum Aktivieren der Umgebungsvariableneinstellungen unter Windows 11 Dec 30, 2023 pm 06:07 PM

Die Umgebungsvariablenfunktion ist ein wesentliches Werkzeug zum Ausführen des Konfigurationsprogramms im System, aber im neuesten Win11-System wissen immer noch viele Benutzer nicht, wie sie eingerichtet werden sollen. Hier finden Sie eine detaillierte Einführung in den Speicherort Öffnen Sie die Umgebungsvariable win11 und lernen Sie, wie man sie bedient. Wo sind die Win11-Umgebungsvariablen: 1. Geben Sie zunächst „win+R“ ein, um das Ausführungsfeld zu öffnen. 2. Geben Sie dann den Befehl ein: controlsystem. 3. Wählen Sie in der sich öffnenden Systeminformationsoberfläche im linken Menü „Erweiterte Systemeinstellungen“ aus. 4. Wählen Sie dann unten im sich öffnenden Fenster „Systemeigenschaften“ die Option „Umgebungsvariablen“. 5. Abschließend können Sie in den geöffneten Umgebungsvariablen relevante Einstellungen entsprechend Ihren Bedürfnissen vornehmen.

Win11-Startpfad und wie man ihn öffnet Win11-Startpfad und wie man ihn öffnet Jan 03, 2024 pm 11:13 PM

Jedes Windows-System verfügt über einen Startpfad. Wenn Sie ihm Dateien oder Software hinzufügen, wird dieser beim Booten geöffnet. Viele Freunde wissen jedoch nicht, wo sich der Win11-Startpfad befindet. Tatsächlich müssen wir nur den entsprechenden Ordner auf dem Laufwerk C eingeben. Win11-Startpfad: 1. Doppelklicken Sie, um „Dieser PC“ zu öffnen. 2. Fügen Sie den Pfad „C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup“ direkt in das Pfadfeld ein. 3. Hier ist der Win11-Startpfad. Wenn wir die Datei nach dem Booten öffnen möchten, können wir die Datei einfügen. 4. Wenn Sie über diesen Pfad nicht zugreifen können, ist er möglicherweise ausgeblendet.

Wo ist der Anmeldeinformationsmanager von Windows 10? Wo ist der Anmeldeinformationsmanager von Windows 10? Jul 09, 2023 am 10:09 AM

Der Credential Manager ist eine Funktion, mit der Benutzer Web-Anmeldeinformationen und Windows-Anmeldeinformationen verwalten. Viele Benutzer wissen jedoch immer noch nicht, wo sich der Windows 10 Credential Manager befindet. Tatsächlich befindet sich der Anmeldeinformationsmanager auf dem Bedienfeld. Denken Sie daran, die Anzeigemethode auf ein kleines Symbol zu ändern, damit Sie den Anmeldeinformationsmanager anzeigen können, wenn Sie ihn anzeigen möchten Bei einer großen Anzahl müssen Sie das Kontopasswort eingeben. Wo befindet sich der Anmeldeinformationsmanager von Windows 10: 1. Öffnen Sie die Systemsteuerung im System, klicken Sie auf die Methode „Ansicht“ in der oberen rechten Ecke und wandeln Sie den Typ in ein kleines Symbol um. 2. Nachdem Sie es als kleines Symbol angezeigt haben, klicken Sie auf „Zertifikatsmanager“. 3. Nach dem Aufrufen des Credential Managers sehen Sie eine Einführung in die relevanten Funktionen, die hauptsächlich für verwendet werden

Standort des Origami-Vogels im Stardome Railway Crocker Film and Television Park Standort des Origami-Vogels im Stardome Railway Crocker Film and Television Park Mar 27, 2024 pm 11:51 PM

Es gibt insgesamt 20 Origami-Vögel im Stardome Railway Croaker Movie Park. Viele Spieler wissen nicht, wo sich die Origami-Vögel im Crocker Movie Park befinden, um allen die Suche zu erleichtern. und schauen Sie sich diese neueste Zusammenfassung der Standorte der Origami-Vögel im Croaker Film and Television Park an, um spezifische Inhalte zu erhalten. Leitfaden zur Honky Dome Railway Star Dome Railway Crocker Film Park Origami Bird Location 1, Crocker Film Park 1. Etage 2, Crocker Film Park 2. Etage

Verstehen Sie den Speicherort und die Struktur des Pip-Installationspaketspeichers Verstehen Sie den Speicherort und die Struktur des Pip-Installationspaketspeichers Jan 18, 2024 am 08:23 AM

Um mehr über den Speicherort der von pip installierten Pakete zu erfahren, benötigen Sie spezifische Codebeispiele. Pip ist ein häufig verwendetes Paketverwaltungstool in der Python-Sprache. Es wird zum einfachen Installieren, Aktualisieren und Verwalten von Python-Paketen verwendet. Wenn Sie pip zum Installieren eines Pakets verwenden, lädt es automatisch die entsprechende Paketdatei von PyPI (Python Package Index) herunter und installiert sie am angegebenen Speicherort. Wo werden also die von pip installierten Pakete gespeichert? Dies ist ein Problem, auf das viele Python-Entwickler stoßen werden. Dieser Artikel befasst sich mit dem Speicherort der von pip und Provide installierten Pakete

Praktischer Leitfaden zu regulären Ausdrücken in Go: So passen Sie hexadezimale Farbcodes an Praktischer Leitfaden zu regulären Ausdrücken in Go: So passen Sie hexadezimale Farbcodes an Jul 13, 2023 am 10:46 AM

Go Language – Praktischer Leitfaden für reguläre Ausdrücke: So passen Sie hexadezimale Farbcodes an. Einführung: Reguläre Ausdrücke sind ein leistungsstarkes und flexibles Werkzeug zum Mustervergleich und zum Suchen von Zeichenfolgen. In der Go-Sprache können wir das integrierte reguläre Ausdruckspaket regexp verwenden, um diese Vorgänge zu implementieren. In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke verwenden, um hexadezimale Farbcodes in der Go-Sprache abzugleichen. Importieren des regulären Ausdruckspakets Zuerst müssen wir das reguläre Ausdruckspaket regexp der Go-Sprache importieren. Sie können die folgende Importanweisung am Anfang des Codes hinzufügen: i

Win11-Shutdown-Standort Win11-Shutdown-Standort Jan 10, 2024 am 09:14 AM

Wenn wir längere Zeit nicht am Computer sind, ist es am besten, den Computer herunterzufahren, um ihn zu schützen. Wo ist also das Herunterfahren in Win11? Öffnen Sie im Allgemeinen einfach das Startmenü und Sie können es finden die Abschalttaste darin. Wo man Windows 11 herunterfährt: Antwort: Im Power-Button des Startmenüs. 1. Zuerst klicken wir auf das „Windows-Logo“ in der unteren Taskleiste, um das „Startmenü“ zu öffnen. 2. Nach dem Öffnen finden Sie in der unteren rechten Ecke den „Power“-Button, wie in der Abbildung dargestellt. 3. Nachdem Sie auf den Netzschalter geklickt haben, wird „Herunterfahren“ angezeigt. Klicken Sie darauf, um das Gerät herunterzufahren. 4. Wenn der Computer aufgrund besonderer Umstände, z. B. eines Absturzes, nicht heruntergefahren werden kann, können Sie direkt den „Einschaltknopf“ am Computer gedrückt halten, um ein Herunterfahren zu erzwingen.

Verwenden der Check-In-Funktion von Apple: Eine Anleitung zur Nachrichten-App in iOS 17 Verwenden der Check-In-Funktion von Apple: Eine Anleitung zur Nachrichten-App in iOS 17 Sep 14, 2023 pm 09:13 PM

Apple hat in iOS 17 eine neue Funktion in Nachrichten hinzugefügt, um Ihre Lieben darüber zu informieren, wenn Sie sicher zu Hause sind. Es heißt Check-in und hier erfahren Sie, wie Sie es verwenden. Egal, ob Sie nach Einbruch der Dunkelheit nach Hause gehen oder am frühen Morgen laufen gehen, Sie können sich in der Nachrichten-App von Apple bei Familie oder Freunden melden, um ihnen mitzuteilen, wann Sie sicher zu Hause sind. Bei Ihrer Ankunft erkennt CheckIn automatisch, wann Sie zu Hause sind und benachrichtigt Ihre Freunde. Wenn sie benachrichtigt werden und der Check-in beendet ist, werden Sie ebenfalls benachrichtigt. Wenn etwas Unerwartetes passiert und Sie unterwegs Verspätung haben, erkennt CheckTab sogar, dass Sie nicht vorankommen, meldet sich bei Ihnen und fragt Sie, ob Sie Ihre voraussichtliche Ankunftszeit erhöhen möchten. wenn nicht

See all articles