正则表达式编号从零开始,一个或多个空格后跟加号或减号

时间:2017-05-22 13:29:45

标签: regex

我有以下正则表达式;

^(\s)*[+-]?\d+$

如果输入在第一个非空白字符之前包含多个空格,则它会失败。 目前它正在研究下一个例子

- :false
-1 :true
+1 :true

如果开头有0,1个或更多的空格,我想要的是相同的逻辑:

: true (empty input string)
    : true (one or more spaces)
  -: false
  -1: true
   +1: true
   235: true 

这里我匹配数字,但是在更一般的方案中,如果有decimalan,在一些特殊的单词等我会想要相同的行为。 所以,基本上,我希望我的正则表达式匹配,如果开头有任意数量的空格或空字符串,接下来是我想要的东西(数字,电子邮件,特殊字......)

2 个答案:

答案 0 :(得分:2)

您需要使用可选分组构造使整个模式可选,并在组之前放置\s*

^\s*(?:[+-]?\d+)?$
    ^^^        ^^

请参阅regex demo

<强>详情:

  • ^ - 字符串的开头
  • \s* - 0+ whitespaces
  • (?: - 启动非捕获组(如果引擎不支持非捕获组,则删除?:)匹配....
    • [+-]? - 可选的(1或0次出现)+-符号
    • \d+ - 1+位数
  • )? - .... 1或0次
  • $ - 字符串结束。

答案 1 :(得分:0)

我认为您希望使用\ s:

来填充星号
^\s*[-+]?\d+$