Heim > Backend-Entwicklung > C++ > Wie kann ich Zeichenlängenbeschränkungen in regulären Ausdrücken erzwingen?

Wie kann ich Zeichenlängenbeschränkungen in regulären Ausdrücken erzwingen?

Patricia Arquette
Freigeben: 2025-01-26 19:56:10
Original
357 Leute haben es durchsucht

How Can I Enforce Character Length Limits in Regular Expressions?

Die Zeichenlänge in regulären Ausdrücken

durchsetzen

reguläre Ausdrücke benötigen häufig Längenbeschränkungen. Ohne sie stimmt ein Regex in jeglicher Länge überein. Während Quantifizierer die Lösung (z. B. {1,15}) erscheinen, funktionieren sie nicht direkt auf der gesamten Saite. Dies liegt daran, dass Quantifizierer nur das unmittelbare vorhergehende Element beeinflussen.

zum Beispiel schlägt dieser Versuch fehl:

<code class="language-javascript">var test = /^(a-z|A-Z|0-9)*[^$%^&*;:,?()""']*${1,15}/ // Error!</code>
Nach dem Login kopieren

Die Lookahead -Lösung

Der korrekte Ansatz verwendet eine positive Aus Lookahead -Behauptung:

<code class="language-javascript">^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Nach dem Login kopieren

Verständnis der Lookahead

(?=.{1,15}$) ist der Schlüssel. Dieses positive Lookahead behauptet, dass die gesamte Zeichenfolge (von Anfang an ^ bis zum Ende $) zwischen 1 und 15 Zeichen (.{1,15}) enthält. Es verbraucht keine Zeichen; Es überprüft nur den Zustand. Der Rest des Regex stimmt dann mit den zulässigen Zeichen in dieser Längenbeschränkung überein. [a-zA-Z0-9]*[^$%^&*;:,?()""']*$

Neuleitungen

Wenn Ihre Saiten neue Zeichen enthalten, verwenden Sie eine robustere Zeichenklasse, um zu einem beliebigen Charakter zu passt, einschließlich Neulinen:

<code class="language-javascript">^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
Nach dem Login kopieren

entspricht jedem Whitespace- oder Nicht-Whitespace-Charakter. Dadurch wird sichergestellt, dass die Längenprüfung auch bei Multiline -Eingang korrekt funktioniert. Dies liefert eine zuverlässige Methode zur Durchsetzung von Charakterlängengrenzen in regulären Ausdrücken. [sS]

Das obige ist der detaillierte Inhalt vonWie kann ich Zeichenlängenbeschränkungen in regulären Ausdrücken erzwingen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage