Regex 返回第一个匹配的模式

Regex 返回第一个匹配的模式,regex,grafana,Regex,Grafana,我有一个正则表达式,它应该匹配doc03test1 测试字符串:doc10test2.prdoc10.com 正则表达式:(doc?\d{2,2})(test?\d{1,1}) 这是否正确?根据您在评论中的描述,可以非常简单地完成: 我想匹配doc:doc 后跟两个数字:\d{2} 然后匹配测试:test 然后是一个数字:\d 但是还有一个我不想匹配的文档:我在开头加了^,在结尾加了$ ^表示字符串的开头,它应该从doc开始 $表示字符串的结尾,它应该在执行最后一个数字后立即结束 ^doc\d{

我有一个正则表达式,它应该匹配
doc03test1

测试字符串:
doc10test2.prdoc10.com

正则表达式:
(doc?\d{2,2})(test?\d{1,1})


这是否正确?

根据您在评论中的描述,可以非常简单地完成:

我想匹配doc:doc

后跟两个数字:\d{2}

然后匹配测试:test

然后是一个数字:\d

但是还有一个我不想匹配的文档:我在开头加了^,在结尾加了$

^表示字符串的开头,它应该从doc开始 $表示字符串的结尾,它应该在执行最后一个数字后立即结束

^doc\d{2}test\d$

你试过你的正则表达式吗?问题是什么?为什么在
文档
测试
之后有
?这意味着它将匹配
doc
do
,以及
tes
test
。那是你想要的吗?不,那不是我想要的。我想匹配
doc
后跟两个数字,然后匹配
test
然后匹配一个数字。但是还有一个我不想匹配的
doc
。你用的是什么语言?在大多数语言中,regexp只返回第一个匹配项,除非您做一些额外的操作。在PHP中必须使用
preg\u match\u all()
,在Python中必须使用
re.findall()
,在JavaScript中必须使用
g
修饰符。我在Grafana仪表板中使用这个正则表达式。