10

我的正则表达式在我的应用程序中运行良好,但它也匹配一个空字符串,即当输入为空时不会发生错误。如何修改此正则表达式使其不匹配空字符串?请注意,我不想更改此正则表达式的任何其他功能。

这是我正在使用的正则表达式:^([0-9\(\)\/\+ \-]*)$

我自己不太了解正则表达式,这就是我要问的原因。我一直在寻找答案,但找不到直接的答案。我最接近的是:除了 c# 中的空字符串之外的任何内容的正则表达式,但这对我来说真的不起作用..

4

4 回答 4

15

将“*”替换为“+”,因为“*”表示“0 次或多次出现”,而“+”表示“至少出现一次”

于 2013-10-27T17:00:33.303 回答
7
于 2018-05-05T10:00:26.757 回答
1

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

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

或者

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

顺便说一句:这是学习正则表达式的好资源(而且很有趣):http ://regexone.com/

于 2013-10-27T17:02:14.413 回答
1

显然,您需要将 Replace 替换*+, 因为+匹配 1 个或多个字符。但是,在字符类中,您不会做所有逃避您正在做的事情。您的正则表达式可以简化为:

^([0-9()\/+ -]+)$
于 2013-10-27T17:04:30.560 回答