真正的正数、负数、整数等正则表达式,网上好多都是错的

 1     /// <summary>
 2     /// 判断字符串是否是数字
 3     /// </summary>
 4     /// <param name="str"></param>
 5     /// <param name="nt"></param>
 6     /// <returns></returns>
 7     /// <summary>
 8     public static bool IsNumType(this string str, NumType nt)
 9     {
10       string matchString = "";
11       switch (nt)
12       {
13         case NumType.NonNegativeInt:
14           //非负整数(正整数 + 0)
15           matchString = @"^[1-9]+[0-9]*$|^0$";
16           break;
17         case NumType.PositiveInt:
18           //正整数
19           matchString = @"^[1-9]+[0-9]*$";
20           break;
21         case NumType.NonPositiveInt:
22           //非正整数(负整数 + 0)
23           matchString = @"^-[1-9]+[0-9]*$|^0$";
24           break;
25         case NumType.NegativeInt:
26           //负整数
27           matchString = @"^^-[1-9]+[0-9]*$";
28           break;
29         case NumType.Int:
30           //整数
31           matchString = @"^-?[1-9]+[0-9]*$|^0$";
32           break;
33         case NumType.NonNegative:
34           //非负数(正数 + 0)
35           matchString = @"(^(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)|^0$)";
36           break;
37         case NumType.Positive:
38           //正数
39           matchString = @"^(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)";
40           break;
41         case NumType.NonPositive:
42           //非正数(负数 + 0)
43           matchString = @"(^-(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)|^0$)";
44           break;
45         case NumType.Negative:
46           //负数
47           matchString = @"^-(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)";
48           break;
49         default:
50           break;
51       }
52       return Regex.IsMatch(str, matchString, RegexOptions.IgnoreCase);
53     }
时间: 2024-10-10 21:09:49

真正的正数、负数、整数等正则表达式,网上好多都是错的的相关文章

正数负数转换

正数 -- > 负数 1>取反 2>+1 12 源码 0000 1100 1111 0011 取反 1111 0100 +1 负数-->正数 1>-1 2>取反 -3 1111 1101 源码 1111 1100 -1 0000 0011 取反 ------- 3

GET和POST有什么区别?及为什么网上的多数答案都是错的!

如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用. 这个答案好像并不是他想要的.于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把GET改个名字叫GET2.他反问道,那就是单纯的名字上的区别喽?我想了想,我觉得如果说再具体的区别,只能去看RFC文档了,还要取决于服务器(指Apache,IIS)的具体实现.但我不得不承认,我的确没有仔细看过HTTP的RFC文

常用正则表达式(网上收集的)

常用的正则表达式 常用正则表达式 正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 用户名:/^[a-z0-9_-]{3,16}$/ 密码:/^[a-z0-9_-]{6,18}$/ 十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.

JS判断输入是否为整数的正则表达式

1: "^//d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-//d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?//d+$" //整数 "^//d+(//.//d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+//.[0-9

XidianOJ 1035 数独 &amp;&amp; 1053 正数负数 &amp;&amp; 1042 另一个简单的游戏

三道水题.. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n; int main(){ while (scanf("%d",&n) != EOF){ if (n > 0){ printf("yes\n"); } else if (n < 0

SpringMVC配置多视图JSP+freemarker,实践成功!(网上好多坑)

今天自己配置了一下SpringMVC 的多视图,本以为很简单,实践后发现各种问题,在网上查了很多资料,最后还是选择了看源码,终于知道为什么失败了,下面介绍一下. 失败配置! 成功只是改了几个小地方. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht

input(file)浏览按钮美化 (巨简单),网上那些都弱爆了

<!DOCTYPE HTML> <html> <body> <input type="file" id="upload" style="display:none"/> <label for="upload"><img style="width:40px;" src="http://www.iconpng.com/png/flatic

TCP三次握手与四次分手超简单解析

关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 先上个TCP三次握手和四次分手的图 网上好多都是错的,只能自己画了,一个正确的图的确可以方便理解. 疑问一,上图传递过程中出现的几个字符(SYN,ACK,FIN,seq,ack)各代表什么意思 SYN,ACK,FIN存放在TCP的标志位,一共有6个字符,这里就介绍这三个: SYN:代表请求创建连接,所以在三次握手中前两次要

TCP的三次握手和四次挥手精简易懂版

先上个TCP三次握手和四次分手的图 网上好多都是错的,只能自己画了,一个正确的图的确可以方便理解. 详解如下,上图传递过程中出现的几个字符(SYN,ACK,FIN,seq,ack)各代表什么意思 SYN,ACK,FIN存放在TCP的标志位,一共有6个字符,这里就介绍这三个: SYN:代表请求创建连接,所以在三次握手中前两次要SYN=1,表示这两次用于建立连接,至于第三次什么用,在疑问三里解答. FIN:表示请求关闭连接,在四次分手时,我们发现FIN发了两遍.这是因为TCP的连接是双向的,所以一次