【发布时间】:2021-11-04 10:24:30
【问题描述】:
我想要这样的输入的正则表达式:
1+2
3
1+22+3
但是如果我写以下输入,那么它不应该允许。比如;
+1+2
1+
a+1+b+c
12+
字符串必须以数字开头,后跟+ 字符。但在 + 字符之后,它必须是任意数字。
我试过这个[^0-9][^+]?,但是我用我写的正则表达式删除了+ 符号,但是有一个问题。在删除+ 字符的同时,它也会删除它旁边的数字。此事件不断重复。
我该怎么做?
【问题讨论】:
-
通常像
^[0-9]+(?:\+[0-9]+)*$这样的东西会起作用。请注意,对于.NET,如果我没记错的话,您宁愿具体说明数字以避免其他语言的数字,除非您另有说明。 -
@JvdV 你可以发布它:-)
-
@Thefourthbird,我不确定,因为其他答案似乎很受欢迎。也许我误解了这个问题。
-
@JvdV 发布的答案可能是一个很好的答案,但请注意它提供了部分匹配,并且在重复中仅匹配单个数字。 regex101.com/r/IsKBGJ/1 如果没有锚点,您也可以将模式写为
(?<!\S)[0-9]+(?:\+[0-9]+)*(?!\S)