regex - 如何用正则表达式捕获字符串 "word1/word2/*"?

标签 regex

我需要构建一个接受以下模式的正则表达式:

word1/word2/*
word1/*

word2 是可选的,并且需要以 /* 结尾。

我尝试了这个正则表达式:

(word1)/(word2)?/\*

它与此输入匹配:word1/word2/*

但不是这个:word1/*

最佳答案

试试这个:

word1(?:/word2)?/\*

(?: ) 构造是一个非捕获组。后面的 ? 表示“前一个原子中的零个或一个”。因此,这匹配 word1(可选)后跟 /word2,最后是斜杠和星号。

(我假设这是您想要匹配的字面星号,而不是“任何字符”中的通配符星号;如果您想要后者,请将 \* 替换为 .*.)

(如果需要,您可以将捕获组 () 放回到 word1word2 上。)

关于regex - 如何用正则表达式捕获字符串 "word1/word2/*"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307847/

相关文章:

objective-c - Objective-c 中的正则表达式无法按预期工作

正则表达式:匹配所有特殊字符但不匹配 *

python - 如何从这个url中提取base、version等相关字段?

Java正则表达式精确匹配大小写

regex - 使用网址重写将www添加到网址

javascript - 如何使用 JavaScript/RegEx 将 2 个 RegEx 语句组合在一起?

Java 正则表达式和匹配器

php - 如何在 PHP 正则表达式中获得全部匹配的 3 个条件?

javascript - 如何获取空的 href 查询参数?

javascript - 正则表达式精确文本匹配不起作用