[英]name pattern regex
我想獲得一個正則表達式模式的名稱,即時消息用於驗證目的。即時消息現在使用的模式存在一些問題。問題是如果我給一個單一的名字像
jack morrison paul
它采取但如果我給
jack paul
我在給傑克和雙倍空格,保羅不給我。傑克是名字莫里森是中間名,保羅是姓氏。如果我給名字和姓氏,如果我不給中間名,在驗證時我給它取兩個空格。覺得我的正則表達式有問題,請幫助我解決這個問題。
// regex pattern
^([A-Za-z]([A-Za-z](\\s|\\.|_)*?)+[a-zA-Z]*$
請更好地格式化您的問題。 我必須閱讀多次才能了解您要達到的目標。
我的第一個刺:
^([\w]+)\s+([\s\w]+)\s+([\w]+)$
它將拆分名字,中間名和姓氏。
這個怎么樣:
^(\w+)\s+(?:(\w+)\s+){0,1}(\w+){0,1}$
我僅使用\\w
簡化了名稱捕獲,它不僅可以匹配字母,還可以匹配它,但您可以根據自己的特定要求將其更改。
在中間: (?:(\\w+)\\s+){0,1}
表示我們要查找一個或多個單詞字符,以及一個或多個空格,作為一組介於0到1次之間的字符,這意味着可選的。
但是我認為拋出這個問題的部分只是使用單個\\s
,這意味着它必須恰好是一個空格。 我用\\s+
表示至少一個空格,但可能更多。 如果願意,可以將其更改為更大的限制,例如: \\s{1,2}
表示1到2之間的空格。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.