揭开正则表达式语法的神秘面纱
语法|正则
正则表达式(REs)通常被错误地认为是只有少数人理解的一种神秘语言。在表面上它们确实看起来杂乱无章,如果你不知道它的语法,那么它的代码在你眼里只是一堆文字垃圾而已。实际上,正则表达式是非常简单并且可以被理解。读完这篇文章后,你将会通晓正则表达式的通用语法。
支持多种平台
正则表达式最早是由数学家Stephen Kleene于1956年提出,他是在对自然语言的递增研究成果的基础上提出来的。具有完整语法的正则表达式使用在字符的格式匹配方面上,后来被应用到熔融信息技术领域。自从那时起,正则表达式经过几个时期的发展,现在的标准已经被ISO(国际标准组织)批准和被Open Group组织认定。
正则表达式并非一门专用语言,但它可用于在一个文件或字符里查找和替代文本的一种标准。它具有两种标准:基本的正则表达式(BRE),扩展的正则表达式(ERE)。ERE包括BRE功能和另外其它的概念。
许多程序中都使用了正则表达式,包括xsh,egrep,sed,vi以及在UNIX平台下的程序。它们可以被很多语言采纳,如HTML 和XML,这些采纳通常只是整个标准的一个子集。
比你想象的还要普通
随着正则表达式移植到交叉平台的程序语言的发展,这的功能也日益完整,使用也逐渐广泛。网络上的搜索引擎使用它,e-mail程序也使用它,即使你不是一个UNIX程序员,你也可以使用规则语言来简化你的程序而缩短你的开发时间。
正则表达式101
很多正则表达式的语法看起来很相似,这是因为你以前你没有研究过它们。通配符是RE的一个结构类型,即重复操作。让我们先看一看ERE标准的最通用的基本语法类型。为了能够提供具有特定用途的范例,我将使用几个不同的程序。
字符匹配
正则表达式的关键之处在于确定你要搜索匹配的东西,如果没有这一概念,Res将毫无用处。
每一个表达式都包含需要查找的指令,如表A所示。
Table A: Character-matching regular expressions
操作
解释
例子
结果
.
Match any one character
grep .ord sample.txt
Will match “ford”, “lord”, “2ord”, etc. in the file sample.txt.
[ ]
Match any one character listed between the brackets
grep [cng]ord sample.txt
Will match only “cord”, “nord”, and “gord”
[^ ]
Match any one character not listed between the brackets
grep [^cn]ord sample.txt
Will match “lord”, “2ord”, etc. but not “cord” or “nord”
grep [a-zA-Z]ord sample.txt
Will match “aord”, “bord”, “Aord”, “Bord”, etc.
grep [^0-9]ord sample.txt
Will match “Aord”, “aord”, etc. but not “2ord”, etc.
重复操作符
重复操作符,或数量词,都描述了查找一个特定字符的次数。它们常被用于字符匹配语法以查找多行的字符,可参见表B。
Table B: Regular expression repetition operators
操作
解释
例子
结果
?
Match any character one time, if it exists
egrep “?erd” sample.txt
Will match “berd”, “herd”, etc. and “erd”
*
Match declared element multiple times, if it exists
egrep “n.*rd” sample.txt
Will match “nerd”, “nrd”, “neard”, etc.
+
Match declared element one or more times
egrep “[n]+erd” sample.txt
Will match “nerd”, “nnerd”, etc., but not “erd”
{n}
Match declared element exactly n times
egrep “[a-z]{2}erd” sample.txt
Will match “cherd”, “blerd”, etc. but not “nerd”, “erd”, “buzzerd”, etc.
{n,}
Match declared element at least n times
egrep “.{2,}erd” sample.txt
Will match “cherd” and “buzzerd”, but not “nerd”
{n,N}
Match declared element at least n times, but not more than N times
egrep “n[e]{1,2}rd” sample.txt
Will match “nerd” and “neerd”
锚
锚是指它所要匹配的格式,如图C所示。使用它能方便你查找通用字符的合并。例如,我用vi行编辑器命令:s来代表substitute,这一命令的基本语法是:
s/pattern_to_match/pattern_to_substitute/
Table C: Regular expression anchors
操作
解释
例子
结果
^
Match at the beginning of a line
s/^/blah /
Inserts “blah “ at the beginning of the line
$
Match at the end of a line
s/$/ blah/
Inserts “ blah” at the end of the line
\ Match at the beginning of a word
s/\/
Inserts “blah” at the beginning of the word
egrep “\
\>
Match at the end of a word
s/\>/blah/
Inserts “blah” at the end of the word
egrep “\>blah” sample.txt
Matches “soupblah”, etc.
\b
Match at the beginning or end of a word
egrep “\bblah” sample.txt
Matches “blahcake” and “countblah”
\B
Match in the middle of a word
egrep “\Bblah” sample.txt
Matches “sublahper”, etc.
间隔
Res中的另一可便之处是间隔(或插入)符号。实际上,这一符号相当于一个OR语句并代表|符号。下面的语句返回文件sample.txt中的“nerd” 和 “merd”的句柄:
egrep “(n|m)erd” sample.txt
间隔功能非常强大,特别是当你寻找文件不同拼写的时候,但你可以在下面的例子得到相同的结果:
egrep “[nm]erd” sample.txt
当你使用间隔功能与Res的高级特性连接在一起时,它的真正用处更能体现出来。
一些保留字符
Res的最后一个最重要特性是保留字符(也称特定字符)。例如,如果你想要查找“ne*rd”和“ni*rd”的字符,格式匹配语句“n[ei]*rd”与“neeeeerd” 和 “nieieierd”相符合,但并不是你要查找的字符。因为‘*’(星号)是个保留字符,你必须用一个反斜线符号来替代它,即:“n[ei]\*rd”。其它的保留字符包括:
^ (carat)
. (period)
[ (left bracket}
$ (dollar sign)
( (left parenthesis)
) (right parenthesis)
| (pipe)
* (asterisk)
+ (plus symbol)
? (question mark)
{ (left curly bracket, or left brace)
\ backslash
一旦你把以上这些字符包括在你的字符搜索中,毫无疑问Res变得非常的难读。比如说以下的PHP中的eregi搜索引擎代码就很难读了。
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$sendto)
你可以看到,程序的意图很难把握。但如果你抛开保留字符,你常常会错误地理解代码的意思。
总结
在本文中,我们揭开了正则表达式的神秘面纱,并列出了ERE标准的通用语法。如果你想阅览Open Group组织的规则的完整描述,你可以参见:Regular Expressions,欢迎你在其中的讨论区发表你的问题或观点。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

IntelTXT ist eine von Intel eingeführte hardwaregestützte Sicherheitstechnologie, die die Integrität und Sicherheit des Servers während des Startvorgangs gewährleisten kann, indem ein geschützter Bereich zwischen CPU und BIOS eingerichtet wird. Der vollständige Name von TXT lautet TrustedExecutionTechnology, also Trusted Execution Technology. Einfach ausgedrückt handelt es sich bei TXT um eine Sicherheitstechnologie, die Schutz auf Hardwareebene bietet, um sicherzustellen, dass der Server beim Start nicht durch Schadprogramme oder nicht autorisierte Software verändert wurde. Dieses hier

Herausgeber des Machine Power Report: Wu Xin Die heimische Version des humanoiden Roboters + eines großen Modellteams hat zum ersten Mal die Betriebsaufgabe komplexer flexibler Materialien wie das Falten von Kleidung abgeschlossen. Mit der Enthüllung von Figure01, das das multimodale große Modell von OpenAI integriert, haben die damit verbundenen Fortschritte inländischer Kollegen Aufmerksamkeit erregt. Erst gestern veröffentlichte UBTECH, Chinas „größter Bestand an humanoiden Robotern“, die erste Demo des humanoiden Roboters WalkerS, der tief in das große Modell von Baidu Wenxin integriert ist und einige interessante neue Funktionen aufweist. Jetzt sieht WalkerS, gesegnet mit Baidu Wenxins großen Modellfähigkeiten, so aus. Wie Figure01 bewegt sich WalkerS nicht umher, sondern steht hinter einem Schreibtisch, um eine Reihe von Aufgaben zu erledigen. Es kann menschlichen Befehlen folgen und Kleidung falten

CHM wird mithilfe von Online-Konvertierungstools, Browser-Plug-Ins, Befehlszeilentools und Software von Drittanbietern in TXT konvertiert. Detaillierte Einführung: 1. Verwenden Sie das Online-Konvertierungstool, laden Sie einfach die CHM-Datei hoch, wählen Sie das TXT-Format aus und laden Sie dann die konvertierte TXT-Datei herunter. 2. Verwenden Sie das Browser-Plugin. Öffnen Sie nach der Installation des Plug-ins einfach CHM Datei im Browser und klicken Sie dann auf die Plug-in-Schaltfläche, um CHM-Dateien in das TXT-Format zu konvertieren. 3. Verwenden Sie Befehlszeilentools usw.

Zu den Methoden zum Konvertieren von HTML in TXT gehören die Verwendung eines Texteditors, die Verwendung von Online-Konvertierungstools und die Verwendung von Python-Programmierung. Ausführliche Einführung: 1. Um eine HTML-Datei zu öffnen, können Sie einen beliebigen Texteditor wie Notepad, Sublime Text usw. verwenden. Um den Inhalt der gesamten HTML-Datei auszuwählen, können Sie die Tastenkombination Strg+A drücken oder die Maus ziehen Um die Auswahl auszuwählen und zu kopieren, können Sie den Inhalt kopieren, indem Sie die Tastenkombination Strg+C oder die Kopieroption im Kontextmenü drücken, eine neue TXT-Datei öffnen, denselben Texteditor verwenden usw.

Pandas ist ein Datenanalysetool für Python, das sich besonders zum Bereinigen, Verarbeiten und Analysieren von Daten eignet. Während des Datenanalyseprozesses müssen wir häufig Datendateien in verschiedenen Formaten lesen, beispielsweise TXT-Dateien. Während des spezifischen Vorgangs können jedoch einige Probleme auftreten. In diesem Artikel werden Antworten auf häufige Fragen zum Lesen von TXT-Dateien mit Pandas gegeben und entsprechende Codebeispiele bereitgestellt. Frage 1: Wie lese ich eine TXT-Datei? TXT-Dateien können mit der Funktion read_csv() von Pandas gelesen werden. Das ist weil

Die Schritte zum Konvertieren von chm in txt bestehen darin, Tools und Umgebung vorzubereiten, die CHM-Datei zu öffnen, die TXT-Datei zu exportieren, die TXT-Datei zu bearbeiten sowie die TXT-Datei zu speichern und zu schließen. Detaillierte Einführung: 1. Bereiten Sie die Tools und die Umgebung vor, bereiten Sie den CHM-Reader, den Texteditor und das Betriebssystem vor. 2. Öffnen Sie die CHM-Datei und verwenden Sie den CHM-Reader, um die CHM-Datei zu öffnen, die Sie im Reader auswählen können die Datei, die Sie konvertieren möchten. Einige Reader erlauben möglicherweise die Konvertierung mehrerer Seiten, während andere nur die Konvertierung einer einzelnen Seite zulassen.

txt ist kein Word-Dokument. txt ist ein Textformat, das hauptsächlich Textinformationen speichert, also Textinformationen, während Word-Dokument ein Format für elektronische Dokumente ist (das Suffix ist doc oder docx). So konvertieren Sie txt in ein Word-Dokument: 1. Wählen Sie die txt-Datei auf dem Desktop aus, klicken Sie mit der rechten Maustaste auf „Umbenennen“. 2. Ändern Sie das Suffix-Namensformat in „doc“. 3. Klicken Sie im Popup-Fenster auf „Ja“. 4. Doppelklicken Sie auf „Datei öffnen“, wählen Sie im Popup-Fenster die entsprechende Kodierung aus und klicken Sie in der unteren rechten Ecke auf „OK“.

Welche Währung ist THE? (Tokenized Healthcare Ecosystem) ist eine digitale Währung, die Blockchain-Technologie nutzt, um sich auf Innovationen und Reformen in der Gesundheitsbranche zu konzentrieren. Die Mission von THE Coin besteht darin, mithilfe der Blockchain-Technologie die Effizienz und Transparenz der medizinischen Industrie zu verbessern und eine effizientere Zusammenarbeit zwischen allen Parteien, einschließlich Patienten, medizinischem Personal, Pharmaunternehmen und medizinischen Einrichtungen, zu fördern. Der Wert und die Eigenschaften von THE Coin Zunächst einmal verfügt THE Coin als digitale Währung über die Vorteile der Blockchain – Dezentralisierung, hohe Sicherheit, transparente Transaktionen usw., die es den Teilnehmern ermöglichen, diesem System zu vertrauen und sich darauf zu verlassen. Zweitens besteht die Einzigartigkeit der Münze darin, dass sie sich auf die Medizin- und Gesundheitsbranche konzentriert und die Blockchain-Technologie nutzt, um das traditionelle medizinische System zu transformieren und zu verbessern
