[英]In a RegEx I need to allow spaces only in middle and prevent spaces at beginning and end
[英]Regex - Prevent Double Spaces
對於一個看起來像這樣的名稱字段,我有一個很大的正則表達式。
^(?:(?!(?:.*[ ]){2})(?!(?:.*[']){2})(?!(?:.*[-]){2})(?:[a-zA-Z0-9 \p{L}'-]{3,48}$))$
我不是正則表達式專家,我在 Stackoverflow 和 RegexBuddy 的幫助下做到了這一點。 但是有一條線我遇到了一些麻煩。 第一個正向前瞻(??(:..*[ ]){2})
,這可以防止出現多個空格。
這不是我想要的。 我只是想確保順序中不能有多個空格。 比如雙空格之類的。 此正則表達式可防止整個字符串中有超過 1 個空格。
我一直在試圖弄清楚如何改變它,但我真的很難過。 有沒有辦法用正則表達式的 rest 來強制執行這樣的概念?
C# 是執行此操作的位置。
將(??(:..*[ ]){2})
替換為(?..*[ ]{2})
一個解釋:
(?:.*[ ]){2}
首先匹配前面有零個或多個其他字符 ( (?:.*[ ])
) 的單個空格,然后重復兩次 ( {2}
)。
.*[ ]{2}
匹配前面有零個或多個其他字符的兩個連續空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.