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仪表板中使用这个正则表达式。