Skip to main content
 首页 » 编程设计

c#之特殊情况的正则表达式

2024年01月25日32kerrycode

我需要为以下场景创建一个正则表达式。

它只能有数字和一个点或逗号。

第一部分可以有一到三位数。 第二部分可以是点或逗号。 第三部分可以有一位到两位数。

有效的场景是

123,12 
123.12 
123,1 
123 
12,12 
12.12 
1,12 
1.12 
1,1 
1.1 
1 

到目前为止我想出了这个表达式

\d{1,3}(?:[.,]\d{1,2})? 

但是效果不是很好。例如,输入 11:11 被标记为有效。

请您参考如下方法:

你需要输入anchors围绕你的表情:

^\d{1,3}(?:[.,]\d{1,2})?$ 

^ 将匹配字符串的开头

$ 会匹配字符串的结尾

如果缺少这些 anchor ,它将部分匹配您的字符串,因为最后一部分是可选的,意味着在“11:11”它可以匹配冒号之前的数字,第二个匹配将匹配冒号之后的数字冒号。