Regex 仅匹配数字的正则表达式

Regex 仅匹配数字的正则表达式,regex,Regex,我只想匹配以下示例输入中的单个数字: [2,4,7,9-11] 正则表达式应该匹配2、4和7,但不能匹配9-11。您的目标前后都有非连字符: (?<!-)\b\d+\b(?!-) (? 请参阅。有关单个字符匹配的信息,这可能就足够了。\b是单词边界,\d表示我们正在查找单个数字 如果要省略单个零,则可以对自定义范围执行类似操作: \b[1-9]\b 如果您可以使用两位数和零,那么您可以在原始值上添加一个加号+(表示多个加号): \b\d+\b 要匹配所提供的不属于某一范围的任何单个

我只想匹配以下示例输入中的单个数字:

[2,4,7,9-11]

正则表达式应该匹配2、4和7,但不能匹配9-11。

您的目标前后都有非连字符:

(?<!-)\b\d+\b(?!-)
(?

请参阅。

有关单个字符匹配的信息,这可能就足够了。
\b
是单词边界,
\d
表示我们正在查找单个数字

如果要省略单个零,则可以对自定义范围执行类似操作:

\b[1-9]\b
如果您可以使用两位数和零,那么您可以在原始值上添加一个加号
+
(表示多个加号):

\b\d+\b
要匹配所提供的不属于某一范围的任何单个数字,请使用边界和环视:

\b(?<!-)\d(?!-)\b
\b(?)?

您可以

它部分工作。例如,在本例中,它与11中的1匹配,但它不应该匹配。@BhushanKhajone我添加了单词边界,并添加了演示链接来显示它工作。因此,您的分隔符是逗号?那么这种情况如何:
[2,32,4,7,9-11]
?它与32匹配吗?你在哪里实现这个?PHP、Bash、一些文本编辑器?输入类型在你的帖子中是不明确的。这个输入是字符串还是数组?这是开发最佳正则表达式模式的一个重要因素。这个正则表达式要运行在什么语言/环境中?即使你得到了满意的答案,也要改进你的问题将有利于未来的读者。但它也将匹配9。@RafiduzzamanSonnet我认为它们的意思是查找单个数字,而不是范围,而不是具体的9-11。
\b(?<!-)\d(?!-)\b