簡體   English   中英

正則表達式(字母數字)

[英]Regular expression (alphanumeric)

我需要一個正則表達式,以允許用戶輸入以字母(而不是數字)開頭的字母數字字符串。

這應該在任何正則表達式(RE)引擎中都有效。 PCRE世界中有一種更好的語法,但我更喜歡我的方法能夠在任何地方運行:

^[A-Za-z][A-Za-z0-9]*$

基本上,第一個字符必須是字母,然后是零個或多個字母數字。 那里的開始和結束標簽,以確保整個行都匹配。 如果沒有這些,你可以匹配AB12中的"@@@AB12!!!" 串。

完整說明:

^            start tag.
[A-Za-z]     any one of the upper/lower case letters.
[A-Za-z0-9]  any one of the upper/lower case letters or digits,
*            repeated zero or more times.
$            end tag

更新:

正如Richard Szalay正確指出的那樣,這僅是ASCII(或更准確地說,是AZ,az和0-9組連續的任何編碼方案),並且僅用於“英文”字母。

如果您想要真正的國際化RE(只有您知道這是否是必需的),您將需要使用更合適的RE引擎之一,例如上述的PCRE,並確保將其編譯為Unicode模式。 然后,您可以分別對字母和數字使用\\p{L}\\p{N}類的“字符”。 我認為在這種情況下的RE將是:

^\p{L}[\pL\pN]*$

但我不確定。 我從未將RE用於我們的國際化軟件。 要了解有關PCRE的更多信息,請參見此處

我認為這應該可以完成工作:

^[A-Za-z][A-Za-z0-9]*$

您正在尋找這樣的模式:

^[a-zA-Z][a-zA-Z0-9]*$

那需要一個字母,之后需要任意數量的字母/數字。 您可能需要調整允許的長度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM