正则表达式:提取2个字符或开头的所有字符

时间:2019-02-25 16:58:04

标签: regex

我正在尝试从一些格式宽松的URL中提取子域+域。有些以http://开头,有些则不是。我用以下正则表达式介绍了http://情况:

(?<=(\/\/))[^\/]*

与类似的东西匹配

https://stackoverflow.com/questions/ask

stackoverflow.com

这是正确的。但是现在我希望它与上述情况匹配并且

stackoverflow.com/questions/ask

stackoverflow.com

我正在使用一些第三方工具,该工具没有明确说明他们用于正则表达式解析的内容。该如何表达?

1 个答案:

答案 0 :(得分:1)

如果工具基于python,则可以使用此正则表达式:

(?:(?<=://)|^)[^/:]+(?!.*://)

负向超前(?!.*://)将阻止匹配前面具有://的字符串,从而避免在开始时匹配https

RegEx Demo 1

否则使用:

(?<=:\/\/|^)[^\/:]+(?!.*:\/\/)

RegEx Demo 2