0

如何让这个正则表达式选择以:text/开头的每个组?所以它以:开头并以/结尾,除非它是最后一个字符串。

示例网址

/site/:param/anything/:s

到目前为止,正则表达式是这样的:

(:.+/)

我很近,但很远。

所以它会选择粗体项目: /site/ :param /anything/ :s

4

2 回答 2

0

我认为应该这样做:

(?<=/:)[^/]+

无需明确检查/字符串的终止或结尾,因为它们中的任何一个都会结束[^/]+匹配。

于 2013-06-20T00:42:23.883 回答
0

这将选择第一次出现:

(:[^\/]+)(\/|$)

我不认为正则表达式可以匹配给定字符串中不定数量的条目。为此,您必须重复上述正则表达式。Ruby 中的示例:

"/site/:param/anything/:s".match(/(:[^\/]+)(\/|$)/)
于 2013-06-20T00:43:17.037 回答