Использование регулярных выражений для извлечения совпадающих строк на языке Go

Go рептилия регулярное выражение HTML
Использование регулярных выражений для извлечения совпадающих строк на языке Go

Эта статья является оригинальной статьей, перепечатайте и укажите источник, добро пожаловать на сканирование кода и обратите внимание на общедоступный номерflysnow_orgили сайтwww.flysnow.org/, и впервые прочитал последующие замечательные статьи. Если вы думаете, что это хорошо, пожалуйста, поделитесь им со своим кругом друзей, спасибо за вашу поддержку.

В процессе сканирования нам необходимо обрабатывать просканированный контент, например, извлекать нужный нам контент и текст, например информацию о городе, информацию о персонале и т. д. В дополнение к поиску строк более элегантно и эффективно использовать обычное сопоставление. , Удобная программа.

В этой статье в основном используется извлечение даты и названия статьи из URL-адреса в качестве примера, иллюстрирующего использование регулярных выражений для извлечения строк.

Например, этот URLhttp://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html, это учебник по goquery, написанный некоторое время назад. Из этого URL-адреса мы можем увидеть информацию о дате с указанием года, месяца, дня и информации о названии последней статьи. Как мы можем получить эту информацию из такого URL-адреса? При этом используется группировка регулярных выражений.

Группировка регулярных выражений с помощью круглых скобок()Указывает, что каждая пара круглых скобок представляет собой текст, который мы сопоставляем, и их можно извлечь.

Анализируя URl выше, мы определяем регулярное выражение следующим образом:

^http://www.flysnow.org/([\d]{4})/([\d]{2})/([\d]{2})/([\w-]+).html$

^$Указываем начало и конец совпадения соответственно и определяем область действия нашего регулярного выражения.

[\d]{4}Указывает, что мы хотим сопоставить ровно 4 цифры, потому что год состоит из 4 цифр, поэтому мы определяем соответствие 4 цифрам. Следующий месяц и день состоят из 2 цифр, поэтому они определяются как 2 цифры.

[\w-]Совпадение строк и средних полос, знак плюс (+) означает совпадение 1 или более.

Затем они все ставят скобки(), что означает, что мы хотим извлечь эти строки.

Взгляните на полный исходный код ниже.

flysnowRegexp := regexp.MustCompile(`^http://www.flysnow.org/([\d]{4})/([\d]{2})/([\d]{2})/([\w-]+).html$`)
params := flysnowRegexp.FindStringSubmatch("http://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html")

for _,param :=range params {
	fmt.Println(param)
}

Запуск распечатки:

http://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html
2018
01
20
golang-goquery-examples-selector

FindStringSubmatchМетод состоит в том, чтобы извлечь соответствующую строку, а затем передать[]stringвернуть. Мы видим, что первое совпадение — это сама строка, а начиная со второго — это та строка, которая нам нужна.

	fmt.Println("年份为:"+params[1])
	fmt.Println("月份为:"+params[2])
	fmt.Println("天数为:"+params[3])
	fmt.Println("文章名为:"+params[4])

Таким образом извлекается информация, необходимая для этой статьи.

Регуляры очень полезны для обработки статей.Чтобы узнать больше о регулярных выражениях Golang, вы можете обратиться к этому официальному введению в регулярные выражения.GitHub.com/Google/hot2/…

Эта статья является оригинальной статьей, перепечатайте и укажите источник, добро пожаловать на сканирование кода и обратите внимание на общедоступный номерflysnow_orgили сайтwww.flysnow.org/, и впервые прочитал последующие замечательные статьи. Если вы думаете, что это хорошо, пожалуйста, поделитесь им со своим кругом друзей, спасибо за вашу поддержку.

扫码关注