2016-08-18 53 views
1

我想匹配的字符串,可能是一個人的名字或企業的名稱,如:正則表達式:匹配字符串包含任意數量的字母,但數字的數量有限/特殊字符

Bob Stewart 
Cool-Cows PTY LTD. 
55 Burgers Company 
Billy O'Dilly 
Tom & John's Paper Supplies 

它們基本上是主要由字母(無限字母或空格)組成的字符串,可以包含數字或特殊字符(',&, - 等)但不是很多,所以我想限制這些字符/數字在字符串中的最大出現次數(例如每個最多3個)。

我知道如何使用量詞字符集發生限制,但它會在第一次出現停止: ^[a-zA-Z\s]*[^a-zA-Z]{0,3}

誰能幫助?謝謝

+0

你使用哪種語言的正則表達式?還包括有問題的一些有效和無效的輸入 – anubhava

回答

0

這有幫助嗎?

[a-zA-Z\s]|^[^a-zA-Z]{0,3} 
+0

似乎獨立匹配每個字母或空格的Nope –

0

你不能在上面不清楚的陳述中與量詞匹配。 我有一個辦法可能是使用JavaScript yourissue:

<script> 
var str='a,,r,t,'; 
var myTest=str.replace(/[\w]/g,''); 
if(myTest.length<4) 
    alert('Valid Text') 
else 
    alert('InValid Text') 
</script> 

步驟:

  • 刪除Characher阿爾法

  • 計數非阿爾法

  • 集IF語句來檢查

0

查找最多3個特價:

^([A-Za-z ]*[^A-Za-z ]){0,3}[A-Za-z ]*$ 

live demo

+0

感謝您的幫助,但它似乎沒有工作,什麼是startin「(?i)」呢? –

+0

@Finn'(?i)'表示不區分大小寫,但取決於工具。我已經把它和(我認爲)修正了正則表達式。 – Bohemian

相關問題