2013-10-27 82 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()\/+ -]+)$