簡體   English   中英

正則表達式 - 防止雙重空格

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

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