簡體   English   中英

名稱模式正則表達式

[英]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.

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