我需要构建一个接受以下模式的正则表达式:
word1/word2/*
word1/*
word2
是可选的,并且需要以 /*
结尾。
我尝试了这个正则表达式:
(word1)/(word2)?/\*
它与此输入匹配:word1/word2/*
但不是这个:word1/*
最佳答案
试试这个:
word1(?:/word2)?/\*
(?: )
构造是一个非捕获组。后面的 ?
表示“前一个原子中的零个或一个”。因此,这匹配 word1
(可选)后跟 /word2
,最后是斜杠和星号。
(我假设这是您想要匹配的字面星号,而不是“任何字符”中的通配符星号;如果您想要后者,请将 \*
替换为 .*
.)
(如果需要,您可以将捕获组 ()
放回到 word1
和 word2
上。)
关于regex - 如何用正则表达式捕获字符串 "word1/word2/*"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307847/