新手请教:正则表达式反向引用的疑问
各位前辈,大家好!我是菜鸟,有事请教。
我最近在看《细说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'。看来书不能全信呀
十分感谢两位!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Mistlock Kingdom est un jeu en monde ouvert dans lequel les joueurs peuvent incarner des Sons of Fire pour survivre et explorer. Le jeu combine le divertissement unique des défis d'action RPG, offrant aux joueurs des surprises et une joie sans fin. Dans le jeu, les joueurs peuvent explorer des ressources, des environnements, des armes et bien plus encore. Certains joueurs novices peuvent être curieux de savoir comment démarrer avec le jeu. Dans cette introduction et ce partage, nous vous fournirons quelques guides de démarrage pertinents. Conseils pour les débutants dans le royaume de Fog Lock : Les niveaux de danger des zones enveloppées de miasmes sont différents. Au cours du processus d'exploration, de nouvelles zones de la carte seront progressivement déverrouillées et l'emplacement des zones enveloppées de miasmes pourra être vu. La carte sera distinguée par deux couleurs. La zone bleue peut être saisie pendant une courte période. La durée pendant laquelle vous pourrez rester variera également en fonction du niveau de capacité du personnage.

Anchor Arrival est un jeu de cartes au tour par tour en 3D avec un thème 2D de belle fille haute définition. Il offre une combinaison riche et passionnante de personnages que les joueurs peuvent explorer et expérimenter. Il propose de nombreuses combinaisons puissantes de compositions de haute qualité. aussi les novices curieux.Quels personnages puissants sont recommandés dans le pool ? Jetons un coup d'œil à la référence de sélection pour les novices pour remporter dix médailles d'or consécutives ! Les personnages puissants recommandés par le pool des novices sont principalement une célibataire. -caractère explosif de type tonnerre cible La sortie est très explosive et l'expérience sera très conviviale pour les nouveaux arrivants, il est donc fortement recommandé de le choisir. Il est recommandé de choisir la combinaison "Alice" + "Antelope" pour un bonus de 10 tirages. Alice est le personnage le plus digne de produire l'attribut goldpire, et n'est même pas un peu plus forte que les deux autres personnages du pool de cartes novice. . Alice peut passer un spécial

Crown of the Ancients est un jeu mobile de cartes stratégique de haute qualité basé sur l'aventure magique occidentale. L'exploration secrète dans le jeu, l'aventure des ruines, le championnat national et d'autres jeux spéciaux vous attendent. Alors pour les joueurs débutants, s'ils souhaitent débuter rapidement avec ce jeu, un guide débutant est indispensable. Aujourd'hui, l'éditeur vous apportera le guide pertinent, jetons un oeil. Un aperçu du guide de gameplay pour les novices dans Crown of Ancients et des écoles d'ouverture : 1. Flux d'accumulation de diamants : tout est axé sur l'accumulation de diamants, puis vous commencez à travailler dur après avoir quitté le village. À l'exception de l'arme magique principale, des trois activités de volant d'inertie, etc., qui nécessitent des diamants, les autres sont ignorées. Ne faites pas attention au défi du héros. Vous pouvez en jouer autant que vous le pouvez. , et ne forcez pas. Avantages : Il vous suffit de déconner pour accumuler des diamants. Après avoir quitté le village, vous pouvez accéder rapidement aux dernières activités avec des diamants, obtenir de nouvelles séries de héros matériels et les diamants sont brisés.

Vérification des expressions régulières PHP : détection du format numérique Lors de l'écriture de programmes PHP, il est souvent nécessaire de vérifier les données saisies par l'utilisateur. L'une des vérifications courantes consiste à vérifier si les données sont conformes au format numérique spécifié. En PHP, vous pouvez utiliser des expressions régulières pour réaliser ce type de validation. Cet article explique comment utiliser les expressions régulières PHP pour vérifier les formats de nombres et fournit des exemples de code spécifiques. Tout d’abord, examinons les exigences courantes de validation du format numérique : Entiers : contiennent uniquement des nombres de 0 à 9, peuvent commencer par un signe plus ou moins et ne contiennent pas de points décimaux. point flottant

Expressions régulières PHP : correspondance exacte et exclusion Les expressions régulières d'inclusion floue sont un puissant outil de correspondance de texte qui peut aider les programmeurs à effectuer une recherche, un remplacement et un filtrage efficaces lors du traitement du texte. En PHP, les expressions régulières sont également largement utilisées dans le traitement des chaînes et la correspondance des données. Cet article se concentrera sur la façon d'effectuer une correspondance exacte et d'exclure les opérations d'inclusion floue en PHP, et l'illustrera avec des exemples de code spécifiques. Correspondance exacte La correspondance exacte signifie faire correspondre uniquement les chaînes qui répondent à la condition exacte, sans aucune variation ni mot supplémentaire.

Pour valider les adresses e-mail dans Golang à l'aide d'expressions régulières, procédez comme suit : Utilisez regexp.MustCompile pour créer un modèle d'expression régulière qui correspond aux formats d'adresse e-mail valides. Utilisez la fonction MatchString pour vérifier si une chaîne correspond à un modèle. Ce modèle couvre la plupart des formats d'adresses e-mail valides, notamment : Les noms d'utilisateur locaux peuvent contenir des lettres, des chiffres et des caractères spéciaux : !.#$%&'*+/=?^_{|}~-`Les noms de domaine doivent contenir au moins un lettre, suivie de lettres, de chiffres ou de tirets. Le domaine de premier niveau (TLD) ne peut pas comporter plus de 63 caractères.

Langage C ou C++ : lequel convient mieux aux nouveaux programmeurs À l'ère du développement rapide de la technologie moderne, l'apprentissage de la programmation est devenu un choix de plus en plus populaire, que ce soit dans le cadre du développement de carrière ou comme moyen d'améliorer les capacités de réflexion logique. Parmi les nombreux langages de programmation, le langage C et le C++ sont à la fois des langages très classiques et représentatifs. De nombreuses personnes ne savent pas comment choisir le langage C ou C++ comme langage de programmation d'entrée de gamme. Alors, le langage C est-il plus adapté aux novices en programmation, ou le C++ est-il plus adapté ? Besoin d'exemples de code spécifiques pour

Dans Go, vous pouvez utiliser des expressions régulières pour faire correspondre les horodatages : compilez une chaîne d'expression régulière, telle que celle utilisée pour faire correspondre les horodatages ISO8601 : ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Utilisez la fonction regexp.MatchString pour vérifier si une chaîne correspond à une expression régulière.
