例如,对于一个字符串:正则表达式 - 结合贪婪和懒惰模式
http://www/host/a/b/c/topic/d/e/f/topic/last.html
我想要得到“B”和“C”,这是前第一“主题”的字符串值的值。
如果我使用:.+/(.+)/(.+)/topic/(.+)
,我会得到“e”和“f”。我知道这是贪婪的模式,所以它匹配第二个“主题”。但是,如果我更改为懒惰模式,如.+?/(.+?)/(.+?)/topic/(.+)
,它仍然无法正常工作。
例如,对于一个字符串:正则表达式 - 结合贪婪和懒惰模式
http://www/host/a/b/c/topic/d/e/f/topic/last.html
我想要得到“B”和“C”,这是前第一“主题”的字符串值的值。
如果我使用:.+/(.+)/(.+)/topic/(.+)
,我会得到“e”和“f”。我知道这是贪婪的模式,所以它匹配第二个“主题”。但是,如果我更改为懒惰模式,如.+?/(.+?)/(.+?)/topic/(.+)
,它仍然无法正常工作。
我倾向于使用更多的东西一样:
[^/]+/([^/]+)/([^/]+)/topic/(.+)
的想法是不是匹配任何字符,你匹配到下一个斜线。括号[]
定义了一个字符类,代字号~
意味着'不',所以[^/]
匹配除斜杠之外的所有内容。
它的工作原理。使用这个“([^ /] +)/([^ /] +)/ topic /(.+)”。感谢您的快速响应。 – fkpwolf