Эта статья является оригинальной статьей, перепечатайте и укажите источник, добро пожаловать на сканирование кода и обратите внимание на общедоступный номер
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/, и впервые прочитал последующие замечательные статьи. Если вы думаете, что это хорошо, пожалуйста, поделитесь им со своим кругом друзей, спасибо за вашу поддержку.