如何在LibreOffice Calc中使REGEX函数返回正则捕获组内容——从URL提取站点名
在LibreOffice Calc中用REGEX提取站点名称的正确方法
嘿,我来帮你搞定这个问题!你现在用的REGEX公式之所以会返回带://和末尾斜杠的内容,是因为LibreOffice的REGEX函数默认会返回整个匹配到的字符串,而不是你括号里捕获的部分。要只提取捕获组里的内容,你需要给函数加第三个参数来指定返回哪个捕获组。
基础版公式(适用于带结尾斜杠的URL)
假设你的URL在单元格A1里,可以用这个公式:
=REGEX(A1, "://(.+?)/", "$1")
拆解一下:
(.+?):用了非贪婪匹配(加了?),它会匹配从://之后到第一个/的所有内容,不会把后面的路径也包含进来- 第三个参数
$1:代表正则表达式中第一个捕获括号()里的内容,这样函数就会直接返回你想要的站点名称,而不是整个匹配的字符串
比如输入https://stackoverflow.com/questions/...,这个公式会返回stackoverflow.com。
通用版公式(兼容有无结尾斜杠的URL)
如果遇到有些URL后面没有斜杠的情况(比如https://example.com),上面的公式可能匹配不到,推荐用更通用的写法:
=REGEX(A1, "^https?://([^/]+)", "$1")
这个版本的优势:
^:确保从URL的开头开始匹配,避免字符串中间出现类似://的干扰内容https?:同时兼容http和https开头的URL[^/]+:匹配所有不是斜杠的字符,也就是从://之后到第一个/(或者URL结尾)的内容,不管URL有没有后续路径都能正确提取
内容的提问来源于stack exchange,提问作者arthur.johnson221
相关产品推荐
相关产品推荐

