[英]RegEx for matching two letters with special boundaries
我想確保用戶輸入具有:
.
之后的字符。 這是我目前擁有的表達方式:
[a-zA-Z][a-zA-Z] (?\\\\s+ (?a-zA-Z0-9.))
這是我的想法:
[a-zA-Z][a-zA-Z]
確保輸入至少以兩個字母開頭
(?\\\\s+
開始一個可選語句。此可選語句必須以至少一個空格開頭(我在Windows上,這就是為什么我有兩個斜杠的原因)。
(?a-zA-Z0-9.))
完成可選語句。 因此,如果提供至少一個空格,則至少要有一個可選字符,數字或。 也可以添加。
例如, ab
, ab
, ab .s
和ab .asd2
應該都是有效的輸入。
我該如何解決這個問題?
嘗試的問題是(?\\
和(?a
都是語法錯誤。如果要創建可選組,則需要編寫(...)?
而不是(?...)
。
(另一個問題是您的正則表達式中的a-zA-Z0-9
確實匹配,因為它不是字符類的一部分。)
此外,POSIX正則表達式中不存在\\s
(以匹配空格)。
我的建議:
^[a-zA-Z]{2}( +[a-zA-Z0-9.]*)?$
那是:
^ # beginning of string
[a-zA-Z]{2} # exactly two letters
(
\ + # one or more spaces
[a-zA-Z0-9.]* # zero or more of: letters, digits, or dot
)? # ... this group is optional
$ # end of string
我認為類似[a-zA-Z]{2}?\\s+?[a-zA-Z0-9.]*
的表達式是[a-zA-Z]{2}?\\s+?[a-zA-Z0-9.]*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.