2013-10-27 28 views
3

我有正則表達式在我的應用程序中正常工作,但它也匹配一個空字符串,即當輸入爲空時不會發生錯誤。如何修改這個正則表達式,使它不會匹配空字符串?請注意,我不想更改此正則表達式的任何其他功能。使正則表達式不匹配空字符串?

這是我使用的正則表達式:^([0-9\(\)\/\+ \-]*)$

我不知道了很多關於正則表達式制定自己,這就是爲什麼我問。我尋找答案,但找不到直接的答案。最近我是這樣的:regular expression for anything but an empty string in c#,但這對我來說並不真實。

回答

8

將「*」替換爲「+」,因爲「*」表示「0或更多次出現」,而「+」表示「至少出現一次」

0

您可以使用+{min, max}語法:

^[0-9\(\)\/\+ \-]{1,}$ 

^[0-9\(\)\/\+ \-]+$ 

順便說一句:這是learnin的重要來源摹正則表達式(和它的樂趣):http://regexone.com/

0

顯然,你需要更換更換*+,爲+匹配1個或多個字符。然而,在角色課堂中,你不會做所有逃避你的事情。您的正則表達式可以簡化爲:

^([0-9()\/+ -]+)$