Maison > développement back-end > C++ > Comment puis-je appliquer des limites de longueur de caractère dans des expressions régulières?

Comment puis-je appliquer des limites de longueur de caractère dans des expressions régulières?

Patricia Arquette
Libérer: 2025-01-26 19:56:10
original
357 Les gens l'ont consulté

How Can I Enforce Character Length Limits in Regular Expressions?

Application de la longueur des caractères dans les expressions régulières

Les expressions régulières nécessitent souvent des restrictions de longueur. Sans eux, une expression régulière correspondra à des chaînes de n'importe quelle longueur. Bien que les quantificateurs semblent être la solution (par exemple {1,15}), ils ne fonctionnent pas directement sur la chaîne entière. En effet, les quantificateurs n'affectent que l'élément immédiatement précédent.

Par exemple, cette tentative échoue :

<code class="language-javascript">var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,?()""']*${1,15}/ // Error!</code>
Copier après la connexion

La solution Lookahead

L'approche correcte utilise une assertion prospective positive :

<code class="language-javascript">^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Copier après la connexion

Comprendre le Lookahead

(?=.{1,15}$)est la clé. Cette anticipation positive affirme que la chaîne entière (du début ^ à la fin $) contient entre 1 et 15 caractères (.{1,15}). Il ne consomme aucun personnage ; il vérifie seulement l'état. Le reste de l'expression régulière [a-zA-Z0-9]*[^$%^&*;:,?()""']*$ correspond ensuite aux caractères autorisés dans cette contrainte de longueur.

Gestion des nouvelles lignes

Si vos chaînes peuvent inclure des caractères de nouvelle ligne, utilisez une classe de caractères plus robuste pour faire correspondre n'importe quel caractère, y compris les nouvelles lignes :

<code class="language-javascript">^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Copier après la connexion

[sS] correspond à n’importe quel caractère espace ou non. Cela garantit que la vérification de la longueur fonctionne correctement même avec une entrée multiligne. Cela fournit une méthode fiable pour appliquer les limites de longueur de caractères dans les expressions régulières.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal