基本使用
Go正则获取全部匹配的结果:
在Go语言中,可以使用regexp包进行正则表达式的匹配。通过该包提供的FindAllString或FindAllStringSubmatch方法,可以获取全部匹配的结果。
FindAllString方法用于获取正则表达式在给定字符串中的所有非重叠匹配项,返回值为一个字符串切片。
以下是一个示例代码,演示如何使用FindAllString方法获取全部匹配结果:
1 | package main |
输出结果为:
1 | [100 200 300] |
另外,如果正则表达式中包含分组,则可以使用FindAllStringSubmatch方法获取全部匹配结果和分组匹配结果。该方法返回一个切片,其中每个元素都是一个包含所有匹配项及其分组匹配结果的字符串切片。
以下是一个示例代码,演示如何使用FindAllStringSubmatch方法获取全部匹配结果和分组匹配结果:
1 | package main |
1 | 100 apple |
提取字符串中全部的http或https链接
1 | (?:https?://)[^\s]+ |
解释一下:
(?:https?://) 匹配 http:// 或 https://,(?:…) 表示非捕获分组,只匹配不捕获。
[^\s]+ 匹配一个或多个非空白字符,直到遇到下一个空白字符或字符串的结尾。
这个正则表达式会匹配所有符合上述模式的字符串,包括以下例子:
- http://example.com
- https://www.example.com/path/file.html
- http://example.com?param=value
- https://example.com#anchor
请注意,这个正则表达式可能会把一些不是链接的文本也匹配出来,比如 email 地址中的 @ 符号。因此,你需要根据具体情况自行处理匹配结果。
1 |
|
输出:
1 | [https://github.com/libimobiledevice/libimobiledevice. https://golang.org/issue/22735 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_06] |
写程序判断这些链接的返回的状态码是不是200
在Go语言中,可以使用net/http包来进行HTTP请求,通过检查HTTP响应的状态码来判断某个链接的返回值是不是200。
以下是一个示例代码,演示如何检查某个链接的返回值是否为200:
1 | package main |
在上面的示例代码中,首先使用http.Get方法发送HTTP GET请求,获取到HTTP响应后,使用resp.StatusCode属性检查HTTP响应状态码是否为200。如果是200,则表示链接返回值为200,否则表示链接返回值不是200。
需要注意的是,在使用完http.Response对象后,需要调用resp.Body.Close()方法来关闭响应体,释放相关资源。
原文链接: https://dashen.tech/2022/12/23/Go正则匹配/
版权声明: 转载请注明出处.