0

我需要使用正则表达式检索 url 的某些部分。网址如下所示:

/xxxx/bbbb/good/city/games_in_the_city.~cccccc~dddddd~eeeee.html

我需要检索 games_in_the_city。我得到了第一部分,直到 / 被删除。现在需要找到字符串中第一次出现的~,以便将其余部分也删除。我现在拥有的正则表达式(.*\/good\/city\/)(.*)(\.html)得到 games_in_the_city.~cccccc~dddddd~eeeee

如何修改我的正则表达式,以便~cccccc~dddddd~eeeee也可以删除。最终输出应该是我不知道url 中可以出现games_in_the_city 多少个(波浪号)。~有时它可能是一到n。

4

3 回答 3

1

假设您只想要aaaa字符串,可以执行以下操作:

/.*\/([^~]*)/

基本上,说'从最后一个开始/,匹配所有不是~.

于 2012-04-27T17:27:56.443 回答
0

试试([^~]*)~- 那里的组将有所有的 as 和下划线。

根据您的语言/工具,可能会有更好的支持,例如在 perl 中,我将使用s/~.*//;从波浪号删除到末尾,而不必捕获以前的内容。

于 2012-04-27T17:28:36.460 回答
0

将每个捕获放在一个组中怎么样。这将为您提供 URL 的每个单独部分:

^/([\w]+)/([\w]+)/([\w]+)/([\w]+)\.~([\w]+)~([\w]+)~([\w]+)\.html$
于 2012-04-27T17:31:56.093 回答