尝试为仅包含数字和单个空格(但在开头和结尾没有空格)的字符串查找正则表达式,例如:
“1 2 3 -4” - >接受
“1 2 3 -4” - >不接受
到目前为止一直在使用它:
^\S+[-?\d ]*\b$
但是仍然接受以下字符串:
“1 2 - 3”由于双重负面和双重空间而不应被接受。
请注意,数字可以是任何整数。
任何帮助?
谢谢
答案 0 :(得分:2)
^(?:-?\d+ )*(?:-?\d+)+$
^
在行首处断言位置(?:-?\d+ )*
符合以下任意次数
-?\d+
匹配零个或一个-
字符,后跟一个或多个数字,后跟空格字符(?:-?\d+)+
匹配零个或一个-
字符,后跟一个或多个数字$
断言行尾的位置答案 1 :(得分:1)
这将有效:
^-?\d+(?:[ ]-?\d+)*$
请注意
+
量词仅适用于\d
表达式。Matcher.matches()
来匹配单行字符串,那么锚点并不是必需的。答案 2 :(得分:0)
试试这个:
git stash - will save your changes then
git checkout branch_name - checkout other branch
git stash apply - will apply your saved changes
甚至更好:
^\S+( (-?)[\d]+)+\b$
为了匹配单个数字
编辑(见评论):
这应该是一个更好的版本(删除前导\ S)
^\S+( ((-?)\d+))+\b$|^\d$