Skip to main content
 首页 » 编程设计

c#之正数和负数的正则表达式 int 值由空格分隔

2024年01月16日4098°冷暖

为了

positive number RegExp is ^[0-9]+$ 
negative number is ^-[0-9]+$ 

但是如何在数字之间加空格,无论是正数还是负数都先接受

请您参考如下方法:

我可以为您提供一个适用于 Ruby 的模式(抱歉,我已经有一段时间没有使用 C# 了)。如果与 scan 功能一起使用,此模式将捕获数字。我敢肯定,您可以使用 C# 中的捕获和组做一些类似的事情:

pattern = /^\s*( 
   [\-\+]? 
   [0-9]+ 
 ) 
 ( 
   (\s+ 
     [\-\+]? 
     [0-9]+ 
   ) 
 )*$/x 
 
xs = ["9", "+9", "-9", "87", "+87", "-87", "9  87", "9 +87", "9  -87", "+9 87",  
"-9 87", "+9 +87", "-9 +87", "-9 87", "9 +9 -9", "9 +9  87", "9 +9  +87",  
"9 +9  -87", "9 +9 654", "9 +9 +654", "9 +9 -654", "9 -9  87", "9 -9  +87",  
"9 -9  -87", "9 -9 654", "9 -9 +654", "9 -9 -654", "9  87  +87", "9  87  -87",  
"9  87 654", "9  87 +654", "9  87 -654", "9  +87  -87", "9  +87 654",  
"9  +87 +654", "9  +87 -654", "9  -87 654", "9  -87 +654", "9  -87 -654",  
"9 654 +654", "9 654 -654", "9 +654 -654", "+9 -9  87", "+9 -9  +87",  
"+9 -9  -87", "+9 -9 654", "+9 -9 +654", "+9 -9 -654", "+9  87  +87",  
"+9  87  -87", "+9  87 654", "+9  87 +654", "+9  87 -654", "+9  +87  -87",  
"+9  +87 654", "+9  +87 +654", "+9  +87 -654", "+9  -87 654", "+9  -87 +654",  
"+9  -87 -654", "+9 654 +654", "+9 654 -654", "+9 +654 -654", "-9  87  +87",  
"-9  87  -87", "-9  87 654", "-9  87 +654", "-9  87 -654", "-9  +87  -87",  
"-9  +87 654", "-9  +87 +654", "-9  +87 -654", "-9  -87 654", "-9  -87 +654",  
"-9  -87 -654", "-9 654 +654", "-9 654 -654", "-9 +654 -654", " 87  +87  -87",  
" 87  +87 654", " 87  +87 +654", " 87  +87 -654", " 87  -87 654",  
" 87  -87 +654", " 87  -87 -654", " 87 654 +654", " 87 654 -654",  
" 87 +654 -654", " +87  -87 654", " +87  -87 +654", " +87  -87 -654",  
" +87 654 +654", " +87 654 -654", " +87 +654 -654", " -87 654 +654",  
" -87 654 -654", " -87 +654 -654", "654 +654 -654"] 
 
xs.each{|x| printf("%15s: %s\n", x, x.scan(pattern).inspect) } 

结果:

                  9: ["9"] 
                 +9: ["+9"] 
                 -9: ["-9"] 
                 87: ["87"] 
                +87: ["+87"] 
                -87: ["-87"] 
              9  87: ["9", "87"] 
              9 +87: ["9", "+87"] 
             9  -87: ["9", "-87"] 
              +9 87: ["+9", "87"] 
              -9 87: ["-9", "87"] 
             +9 +87: ["+9", "+87"] 
             -9 +87: ["-9", "+87"] 
              -9 87: ["-9", "87"] 
            9 +9 -9: ["9", "+9", "-9"] 
           9 +9  87: ["9", "+9", "87"] 
          9 +9  +87: ["9", "+9", "+87"] 
          9 +9  -87: ["9", "+9", "-87"] 
           9 +9 654: ["9", "+9", "654"] 
          9 +9 +654: ["9", "+9", "+654"] 
          9 +9 -654: ["9", "+9", "-654"] 
           9 -9  87: ["9", "-9", "87"] 
          9 -9  +87: ["9", "-9", "+87"] 
          9 -9  -87: ["9", "-9", "-87"] 
           9 -9 654: ["9", "-9", "654"] 
          9 -9 +654: ["9", "-9", "+654"] 
          9 -9 -654: ["9", "-9", "-654"] 
         9  87  +87: ["9", "87", "+87"] 
         9  87  -87: ["9", "87", "-87"] 
          9  87 654: ["9", "87", "654"] 
         9  87 +654: ["9", "87", "+654"] 
         9  87 -654: ["9", "87", "-654"] 
        9  +87  -87: ["9", "+87", "-87"] 
         9  +87 654: ["9", "+87", "654"] 
        9  +87 +654: ["9", "+87", "+654"] 
        9  +87 -654: ["9", "+87", "-654"] 
         9  -87 654: ["9", "-87", "654"] 
        9  -87 +654: ["9", "-87", "+654"] 
        9  -87 -654: ["9", "-87", "-654"] 
         9 654 +654: ["9", "654", "+654"] 
         9 654 -654: ["9", "654", "-654"] 
        9 +654 -654: ["9", "+654", "-654"] 
          +9 -9  87: ["+9", "-9", "87"] 
         +9 -9  +87: ["+9", "-9", "+87"] 
         +9 -9  -87: ["+9", "-9", "-87"] 
          +9 -9 654: ["+9", "-9", "654"] 
         +9 -9 +654: ["+9", "-9", "+654"] 
         +9 -9 -654: ["+9", "-9", "-654"] 
        +9  87  +87: ["+9", "87", "+87"] 
        +9  87  -87: ["+9", "87", "-87"] 
         +9  87 654: ["+9", "87", "654"] 
        +9  87 +654: ["+9", "87", "+654"] 
        +9  87 -654: ["+9", "87", "-654"] 
       +9  +87  -87: ["+9", "+87", "-87"] 
        +9  +87 654: ["+9", "+87", "654"] 
       +9  +87 +654: ["+9", "+87", "+654"] 
       +9  +87 -654: ["+9", "+87", "-654"] 
        +9  -87 654: ["+9", "-87", "654"] 
       +9  -87 +654: ["+9", "-87", "+654"] 
       +9  -87 -654: ["+9", "-87", "-654"] 
        +9 654 +654: ["+9", "654", "+654"] 
        +9 654 -654: ["+9", "654", "-654"] 
       +9 +654 -654: ["+9", "+654", "-654"] 
        -9  87  +87: ["-9", "87", "+87"] 
        -9  87  -87: ["-9", "87", "-87"] 
         -9  87 654: ["-9", "87", "654"] 
        -9  87 +654: ["-9", "87", "+654"] 
        -9  87 -654: ["-9", "87", "-654"] 
       -9  +87  -87: ["-9", "+87", "-87"] 
        -9  +87 654: ["-9", "+87", "654"] 
       -9  +87 +654: ["-9", "+87", "+654"] 
       -9  +87 -654: ["-9", "+87", "-654"] 
        -9  -87 654: ["-9", "-87", "654"] 
       -9  -87 +654: ["-9", "-87", "+654"] 
       -9  -87 -654: ["-9", "-87", "-654"] 
        -9 654 +654: ["-9", "654", "+654"] 
        -9 654 -654: ["-9", "654", "-654"] 
       -9 +654 -654: ["-9", "+654", "-654"] 
       87  +87  -87: ["87", "+87", "-87"] 
        87  +87 654: ["87", "+87", "654"] 
       87  +87 +654: ["87", "+87", "+654"] 
       87  +87 -654: ["87", "+87", "-654"] 
        87  -87 654: ["87", "-87", "654"] 
       87  -87 +654: ["87", "-87", "+654"] 
       87  -87 -654: ["87", "-87", "-654"] 
        87 654 +654: ["87", "654", "+654"] 
        87 654 -654: ["87", "654", "-654"] 
       87 +654 -654: ["87", "+654", "-654"] 
       +87  -87 654: ["+87", "-87", "654"] 
      +87  -87 +654: ["+87", "-87", "+654"] 
      +87  -87 -654: ["+87", "-87", "-654"] 
       +87 654 +654: ["+87", "654", "+654"] 
       +87 654 -654: ["+87", "654", "-654"] 
      +87 +654 -654: ["+87", "+654", "-654"] 
       -87 654 +654: ["-87", "654", "+654"] 
       -87 654 -654: ["-87", "654", "-654"] 
      -87 +654 -654: ["-87", "+654", "-654"] 
      654 +654 -654: ["654", "+654", "-654"]