新手请教:正则表达式反向引用的疑问
各位前辈,大家好!我是菜鸟,有事请教。
我最近在看《细说PHP》,看书里讲,正则表达式里的每个子表达式(用()包含起来的),在不添加任何非捕获元字符的情况下,是按照从左至右,每个子表达式的匹配结果存进缓冲区,并用编号\1至\99引用,不知道我这么描述对不对。现在有两个问题:
1、书上说,使用编号引用子表达式,要在编号前加反斜线转义,这条很纠结,我试的是不需要的,是不是跟什么版本有关系?
2、表达式中,某个子表达式加了元字符?:,这样就不会存储匹配结果,那么缓冲区的编号就不会加一,也就没办法用编号来引用,那么,可以重复调用这个子表达式吗?
感谢!
回复讨论(解决方案)
你先举例说明 是不需要的
感谢版主回复。我在PHP里,用preg_match做匹配,模式是'^([a-zA-Z]*)\d+\1$',就是想匹配字母+数字+字母,匹配字符串'demo123demo'返回yes。如果在模式里的编号前添加反斜线,就返回false了。
上面是我自己试的。然后我百度了几个“正则表达式参考手册”,几个的例子里都是不用添加的。
附链接(不知道贴链接会不会违反发帖守则):https://translate.google.com.hk/?hl=zh-CN&tab=wT,里面第6点的例子是没有的。
好吧这个问题我只是想扩展一下确定是不是存在“版本差异”的问题,我真正迫切想得到答案的是第二个问题,麻烦版主了!
重复调用跟引用是一个意思吗? 如果是的话,你不是知道答案了吗。
/^([a-zA-Z]*)\d+ \1$/
这不就是 在编号前加反斜线转义 吗?
你的第二问是这个意思吗?
/^(?=[a-zA-Z]+)\d+(?=[a-zA-Z]+)$/
哈哈,这么一来就明白了。荣幸荣幸两位版主都出来了。
第一个加反斜线转义,我看的那本书上写的是编号本身就是\1到\99,要引用时要再加一条反斜线,也就是'\\1',书上的实例就是这样,昨晚感觉不对,才发现再加一条反斜线就是匹配字符串'\1'。看来书不能全信呀
十分感谢两位!

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

Mistlock Kingdom ist ein Open-World-Spiel, in dem Spieler als Söhne des Feuers spielen können, um zu überleben und zu erkunden. Das Spiel vereint die einzigartige Unterhaltung von Action-RPG-Herausforderungen und beschert den Spielern endlose Überraschungen und Freude. Im Spiel können Spieler Ressourcen, Umgebungen, Waffen und mehr erkunden. Einige Anfänger sind möglicherweise neugierig, wie sie mit dem Spiel beginnen sollen. In dieser Einführung und Weitergabe stellen wir Ihnen einige relevante Leitfäden für den Einstieg zur Verfügung. Tipps für Anfänger im Nebelschleusen-Königreich: Die Gefahrenstufen der von Miasma bedeckten Gebiete sind unterschiedlich. Während des Erkundungsprozesses werden nach und nach neue Gebiete der Karte freigeschaltet, und die Lage der von Miasma bedeckten Gebiete ist sichtbar. Die Karte wird durch zwei Farben gekennzeichnet. Der blaue Bereich, den Sie für kurze Zeit betreten können, hängt auch von der Fähigkeitsstufe des Charakters ab.

Anchor Arrival ist ein rundenbasiertes 3D-Kartenspiel mit einem hochauflösenden 2D-Thema für Mädchen. Es bietet den Spielern eine reichhaltige und aufregende Kombination von Charakteren, die es zu erkunden und zu erleben gilt Auch neugierige Anfänger. Werfen wir einen Blick auf die Auswahlempfehlung für Anfänger, um zehn Goldmedaillen in Folge zu gewinnen. Die vom Anfängerpool empfohlenen mächtigen Charaktere sind hauptsächlich Singles -Ziel-Donner-Typ-Explosivcharakter. Die Ausgabe ist sehr explosiv und das Erlebnis wird für Neulinge sehr freundlich sein, daher wird dringend empfohlen, es zu wählen. Es wird empfohlen, die Kombination „Alice“ + „Antilope“ für einen 10-Ziehungs-Bonus zu wählen. Alice ist der würdigste Charakter, der das Goldpire-Attribut ausgibt, und ist nicht einmal ein bisschen stärker als die anderen beiden Charaktere im Kartenpool für Anfänger . Alice kann Sonderprüfungen bestehen

Crown of the Ancients ist ein hochwertiges und strategisches Kartenspiel für Handys, das auf westlichen magischen Abenteuern basiert. Geheime Erkundungen im Spiel, Ruinenabenteuer, nationale Meisterschaften und andere besondere Gameplays warten darauf, von Ihnen erlebt zu werden. Für Anfänger, die schnell mit diesem Spiel beginnen möchten, ist ein Leitfaden für Anfänger unverzichtbar. Heute bringt Ihnen der Herausgeber den entsprechenden Leitfaden, werfen wir einen Blick darauf. Ein Überblick über den Gameplay-Leitfaden für Anfänger in Crown of Ancients und die Eröffnungsschulen: 1. Diamanten-Sammelfluss: Alles konzentriert sich auf das Sammeln von Diamanten, und nachdem Sie das Dorf verlassen haben, beginnen Sie hart zu arbeiten. Mit Ausnahme der Hauptzauberwaffe, drei Schwungradaktivitäten usw., die Diamanten erfordern, werden die anderen ignoriert. Achten Sie nicht auf die Heldenherausforderung. Sie können so viele spielen, wie Sie können , und erzwinge es nicht. Vorteile: Sie müssen nur herumspielen, um Diamanten zu sammeln. Nachdem Sie das Dorf verlassen haben, können Sie schnell auf die neuesten Aktivitäten mit Diamanten zugreifen, neue Serien von Hardware-Helden erhalten und Diamanten zerschlagen.

Überprüfung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Beim Schreiben von PHP-Programmen ist es häufig erforderlich, die vom Benutzer eingegebenen Daten zu überprüfen. Eine der häufigsten Überprüfungen besteht darin, zu überprüfen, ob die Daten dem angegebenen Zahlenformat entsprechen. In PHP können Sie reguläre Ausdrücke verwenden, um diese Art der Validierung zu erreichen. In diesem Artikel wird erläutert, wie Sie mithilfe regulärer PHP-Ausdrücke Zahlenformate überprüfen und spezifische Codebeispiele bereitstellen. Schauen wir uns zunächst die allgemeinen Validierungsanforderungen für Zahlenformate an: Ganzzahlen: enthalten nur die Zahlen 0–9, können mit einem Plus- oder Minuszeichen beginnen und enthalten keine Dezimalstellen. Gleitkomma

Reguläre PHP-Ausdrücke: Exakte Übereinstimmung und Ausschluss. Reguläre Fuzzy-Inklusion-Ausdrücke sind ein leistungsstarkes Text-Matching-Tool, das Programmierern bei der effizienten Suche, Ersetzung und Filterung bei der Textverarbeitung helfen kann. In PHP werden reguläre Ausdrücke auch häufig zur Zeichenfolgenverarbeitung und zum Datenabgleich verwendet. Dieser Artikel konzentriert sich auf die Durchführung von exakten Übereinstimmungen und den Ausschluss von Fuzzy-Inklusion-Operationen in PHP und veranschaulicht dies anhand spezifischer Codebeispiele. Exakte Übereinstimmung Exakte Übereinstimmung bedeutet, dass nur Zeichenfolgen abgeglichen werden, die die genaue Bedingung erfüllen, keine Variationen oder zusätzlichen Wörter.

Um E-Mail-Adressen in Golang mithilfe regulärer Ausdrücke zu validieren, führen Sie die folgenden Schritte aus: Verwenden Sie regexp.MustCompile, um ein reguläres Ausdrucksmuster zu erstellen, das gültigen E-Mail-Adressformaten entspricht. Verwenden Sie die MatchString-Funktion, um zu überprüfen, ob eine Zeichenfolge mit einem Muster übereinstimmt. Dieses Muster deckt die meisten gültigen E-Mail-Adressformate ab, einschließlich: Lokale Benutzernamen können Buchstaben, Zahlen und Sonderzeichen enthalten: !.#$%&'*+/=?^_{|}~-`Domänennamen müssen mindestens Eins enthalten Buchstabe, gefolgt von Buchstaben, Zahlen oder Bindestrichen. Die Top-Level-Domain (TLD) darf nicht länger als 63 Zeichen sein.

C-Sprache oder C++: Welche Sprache eignet sich besser für neue Programmierer? Im Zeitalter der rasanten Entwicklung moderner Technologie ist das Erlernen des Programmierens eine immer beliebtere Wahl, sei es als Teil der beruflichen Entwicklung oder als Möglichkeit, die Fähigkeiten des logischen Denkens zu verbessern. Unter vielen Programmiersprachen sind C und C++ beide sehr klassische und repräsentative Sprachen. Viele Menschen sind verwirrt darüber, wie sie C-Sprache oder C++ als Programmiersprache für Einsteiger wählen sollen. Ist die C-Sprache also besser für Programmieranfänger geeignet oder ist C++ besser geeignet? Benötigen Sie spezifische Codebeispiele dazu

In Go können Sie reguläre Ausdrücke verwenden, um Zeitstempel abzugleichen: Kompilieren Sie eine Zeichenfolge mit regulären Ausdrücken, z. B. die, die zum Abgleich von ISO8601-Zeitstempeln verwendet wird: ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Verwenden Sie die Funktion regexp.MatchString, um zu überprüfen, ob eine Zeichenfolge mit einem regulären Ausdruck übereinstimmt.
