如何获得某种模式后的字符串?

时间:2018-06-06 15:09:35

标签: regex

我有一个网址:

https://fakedomain.com/2017/07/01/the-string-i-want-to-get/

我可以通过这种模式识别2017/07/01/

(\d{4}/\d{2}/\d{2}/)

但我想要的是它之后的字符串:the-string-i-want-to-get/

我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

根据您使用的语言,您可能会找到一个为您执行此操作的库(而不是编写您自己的正则表达式)。无论如何,如果你想通过正则表达式实现这一点,你可以:

\d{4}\/\d{2}\/\d{2}\/(.*)\/

这将在日期之后捕获任何内容,直到下一个“/".

你也可以使用积极的外观:

(?<=\d{4}\/\d{2}\/\d{2}\/)(.*)\/

答案 1 :(得分:0)

我建议您使用此正则表达式,其匹配第一组中的2017/07/01/和第二组中的the-string-i-want-to-get/

(\d{4}/\d{2}/\d{2}/)(.*/)

这是Python3中的一个实现示例:

import re

url = 'https://fakedomain.com/2017/07/01/the-string-i-want-to-get/'

m = re.search(r'(\d{4}/\d{2}/\d{2}/)(.*/)', url)

print(m.group(1))  # 2017/07/01/
print(m.group(2))  # the-string-i-want-to-get/