簡體   English   中英

正則表達式匹配2或3個單詞,但不匹配1個單詞

[英]Regex to match either 2 or 3 words, but not 1 word

我目前正在使用以下正則表達式來檢查輸入的是2還是3個單詞。 單詞不應包含任何數值。

^\s*([a-zA-Z]+\s*){2,3}$

但是,這允許在不允許的情況下允許輸入“ Tommy”(1個字)。

謝謝

您可以像這樣實現單詞邊界

^\s*(?:(?:\b[a-zA-Z]+\b)\s*){2,3}$
#         -^-        -^- 

參見regex101.com上的演示

您可以使用此正則表達式來匹配2或3個單詞,這些單詞之間用水平空格隔開:

^\h*[a-zA-Z]+\h+[a-zA-Z]+(?:\h+[a-zA-Z]+)?$

正則演示

您還可以使用split功能並檢查長度:

String[] words = input.split("\\h+"):
if (words.length == 2 || words.length == 3) {
    // 2 or 3 words found
}

暫無
暫無

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

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