2017-02-09 87 views
0

我需要一些寫正則表達式的幫助。幾個正則表達式的查詢

這是我的第一正則表達式表達式(符合英語或希伯來語字符):

/^(?:[\u0590-\u05FF\uFB1D-\uFB40]+|[\w]+)$/i 

這應該是匹配:ABC,אבג 這不應該是匹配:A,B,一個א

它工作正常,我只需要爲更多的1個字符添加限制。

下一個應該和上面的一樣(包括超過1個char 限制),但也允許空格。 這應該是比賽:ABCX,ABCX ASCX,דגהק,שגדדשגב 這不應該是比賽:A,B,asaceדגעההת,ascasvאקיכרעקכ

最後的正則表達式的表述應該是所有的數字,恰好包含10個數字 和開頭的數字05. 這應該匹配:0528547114 這應該不匹配:數字,特殊字符,少於或多於 10位數字。 我使用JS和C#Regex。 任何幫助將不勝感激。

+1

請包括應該和不應該匹配的示例。你正在使用哪種正則表達式? – Richard

+0

閱讀[問]。創建一個[mcve]。 – MYGz

+0

我編輯了我的問題,我希望現在更清楚。 – Jonny

回答

2

爲了匹配多於1個字符使用量詞的{2,}代替+

/^(?:[\u0590-\u05FF\uFB1D-\uFB40]{2,}|[\w]{2,})$/i 

要匹配的空間,將其添加在字符類:

/^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]{2,}|[\w ]{2,})$/i 

要匹配10個數字:

/^(?:[\u0590-\u05FF\uFB1D-\uFB40 ]{2,}|[\w ]{2,}|05\d{8})$/i 

要匹配幾個單詞分隔b y一個空格:

/^(?:[\u0590-\u05FF\uFB1D-\uFB40]{2,}(?: [\u0590-\u05FF\uFB1D-\uFB40]{2,})*|\w{2,}(?: \w{2,})*|05\d{8})$/i 
+0

謝謝,前兩個正是我所需要的, 但最後一個不是 - 我需要它只有數字(0-9),有 正好是10個數字,前兩個數字是05。 類似於:053256899. 我想我明白了:^ 05 + \ d {8} $ – Jonny

+0

@Jonny:只要將'\ d {10}'改成'05 \ d {8}',看我的編輯。 – Toto

+0

非常感謝你 – Jonny