41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
|
# xurls
|
||
|
|
||
|
[](https://godoc.org/github.com/mvdan/xurls)
|
||
|
[](https://travis-ci.org/mvdan/xurls)
|
||
|
|
||
|
Extract urls from text using regular expressions.
|
||
|
|
||
|
go get -u github.com/mvdan/xurls
|
||
|
|
||
|
```go
|
||
|
import "github.com/mvdan/xurls"
|
||
|
|
||
|
func main() {
|
||
|
xurls.Relaxed.FindString("Do gophers live in golang.org?")
|
||
|
// "golang.org"
|
||
|
xurls.Strict.FindAllString("foo.com is http://foo.com/.", -1)
|
||
|
// []string{"http://foo.com/"}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
`Relaxed` is around five times slower than `Strict` since it does more
|
||
|
work to find the URLs without relying on the scheme:
|
||
|
|
||
|
```
|
||
|
BenchmarkStrictEmpty-4 1000000 1885 ns/op
|
||
|
BenchmarkStrictSingle-4 200000 8356 ns/op
|
||
|
BenchmarkStrictMany-4 100000 22547 ns/op
|
||
|
BenchmarkRelaxedEmpty-4 200000 7284 ns/op
|
||
|
BenchmarkRelaxedSingle-4 30000 58557 ns/op
|
||
|
BenchmarkRelaxedMany-4 10000 130251 ns/op
|
||
|
```
|
||
|
|
||
|
#### cmd/xurls
|
||
|
|
||
|
go get -u github.com/mvdan/xurls/cmd/xurls
|
||
|
|
||
|
```shell
|
||
|
$ echo "Do gophers live in http://golang.org?" | xurls
|
||
|
http://golang.org
|
||
|
```
|