2017-01-23 168 views
-1

該字符串應該是這樣的正則表達式特定字符串

"1-7;IN;dd" 
(For example, 2;IN;43). 

首先值之前分號應該是數字1到7。而最後一個值之後第二個分號應該是01到99號。

我的建議

@"/^\d[1-7];IN;\d{1,2}$/" 

不能正常工作

+2

在正則表達式測試儀粘貼您的正則表達式。 '\ d [1-7]'不會做你認爲它做的事。 – CodeCaster

+0

@CodeCaster我沒有投票,但對我來說這似乎是一個合理的問題。有努力。呃,我猜可能缺乏研究。 –

+0

有些語言使用正斜槓來描繪正則表達式。通常,您應該使用正斜槓或引號,但不能同時使用兩者。 – JDB

回答

2

你應該改變你的模式。

1)/在開始和結束不需要

2)\d[1-7]相當於[0-9][1-7],但只需要一個從17

3位數)\d{1,2}匹配一個或兩個數字 - 在你的情況下,你需要兩位數字(從0199,你應該排除00)。

使用此模式爲正則表達式:

^[1-7];IN;(?!00)[0-9]{2}$ 
+1

'[0-9] {2}'也會匹配'00'。 –

+0

@WiktorStribiżew,謝謝,我編輯了我的回答 –

+0

@JDB,謝謝,我編輯了我的回答 –

0
@"^[1-7];IN;[1-9]\d?$" 

這個版本保證了最後一部分是大於0且避免了前導零。

+1

您已經正確識別了匹配OP所需輸入所需的模式。現在你應該更進一步,解釋OP出錯的地方,特別是爲什麼'\ d [1-7]'和'/'是錯誤的選擇。這會增加更多的價值......「教人釣魚」等 – JDB

+0

這不會接受像'2; IN; 03'這樣的字符串,但是OP聲明它們應該是有效的...... –

+0

@JDB我明白這一點。謝謝。 – OlegI

相關問題