我有以下正则表达式;
^(\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,在一些特殊的单词等我会想要相同的行为。 所以,基本上,我希望我的正则表达式匹配,如果开头有任意数量的空格或空字符串,接下来是我想要的东西(数字,电子邮件,特殊字......)
答案 0 :(得分:2)
您需要使用可选分组构造使整个模式可选,并在组之前放置\s*
:
^\s*(?:[+-]?\d+)?$
^^^ ^^
请参阅regex demo
<强>详情:
^
- 字符串的开头\s*
- 0+ whitespaces (?:
- 启动非捕获组(如果引擎不支持非捕获组,则删除?:
)匹配....
[+-]?
- 可选的(1或0次出现)+
或-
符号\d+
- 1+位数)?
- .... 1或0次$
- 字符串结束。答案 1 :(得分:0)
我认为您希望使用\ s:
来填充星号^\s*[-+]?\d+$