首頁 > 後端開發 > C++ > 如何在正則表達式中執行字符長度限制?

如何在正則表達式中執行字符長度限制?

Patricia Arquette
發布: 2025-01-26 19:56:10
原創
357 人瀏覽過

How Can I Enforce Character Length Limits in Regular Expressions?

強制正規表示式中的字元長度

正規表示式通常需要長度限制。 沒有它們,正規表示式將匹配任何長度的字串。 雖然量詞看起來像是解決方案(例如 {1,15}),但它們不能直接作用於整個字串。 這是因為量詞只影響前一個元素。

例如,此嘗試失敗:

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

前瞻性解決方案

正確的方法利用積極的前瞻性斷言:

<code class="language-javascript">^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
登入後複製

理解前瞻性

(?=.{1,15}$)是關鍵。 此正向前瞻性斷言整個字串(從開頭 ^ 到結尾 $)包含 1 到 15 個字元 (.{1,15})。 它不會消耗任何字元;它只檢查條件。 然後,正規表示式 [a-zA-Z0-9]*[^$%^&*;:,?()""']*$ 的其餘部分會符合該長度約束內允許的字元。

處理換行符

如果您的字串可能包含換行符,請使用更強大的字符類別來匹配任何字符,包括換行符:

<code class="language-javascript">^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,?()""']*$</code>
登入後複製

[sS] 符合任何空白或非空白字元。 這確保了即使在多行輸入的情況下長度檢查也能正常工作。 這提供了一種在正規表示式中強制執行字元長度限制的可靠方法。

以上是如何在正則表達式中執行字符長度限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板