英文:
How to count number of characters and words in an HTML file or HTML string?
问题
我有一个来自HTML文件的字符串输入:
<h1> Hello world </h1>
我想要计算这个文件中的单词和字符数(不包括HTML元素)
例如:
输入
<h1>Hello</h1>\n<h1>Hello</h1>
输出
字符数:10
单词数:2
我相信我们需要先解析这个HTML内容。但是我不知道哪个包支持这个功能。
英文:
I have this string input from a HTML file:
<h1> Hello world </h1>
I want to count number of word and character of this file (not include HTML element)
For example:
Input
<h1>Hello</h1>\n<h1>Hello</h1>
Output
Characters : 10
Word : 2
I believe there will be a step we parse this HTML content first. But I dont know which package support that.
答案1
得分: 2
你可以通过正则表达式找到它们。
input := []byte("<h1>Hello</h1>\n<h1>Hello</h1>")
tags, _ := regexp.Compile(`(\<\/?[A-z0-9]+\>)|(\\[A-z]{1})`)
// 移除标签和反斜杠字符
input = tags.ReplaceAll(input, []byte(" "))
words, _ := regexp.Compile(`[A-z0-9]+`)
// 找到所有匹配的单词并计数
fmt.Println("总单词数:", len(words.FindAll(input, -1)))
chars, _ := regexp.Compile(`[A-z0-9]{1}`)
// 找到所有匹配的字符并计数
fmt.Println("总字符数:", len(chars.FindAll(input, -1)))
输出:
总单词数: 2
总字符数: 10
英文:
You can find them by regular expression.
input := []byte("<h1>Hello</h1>\n<h1>Hello</h1>")
tags, _ := regexp.Compile("(\\<\\/?[A-z0-9]+\\>)|(\\\\[A-z]{1})")
// remove tags and backslash characters
input = tags.ReplaceAll(input, []byte(" "))
words, _ := regexp.Compile("[A-z0-9]+")
// find all matched words and count them
fmt.Println("total words: ", len(words.FindAll(input, -1)))
chars, _ := regexp.Compile("[A-z0-9]{1}")
// find all matched characters and count them
fmt.Println("total characters: ", len(chars.FindAll(input, -1)))
output:
total words: 2
total characters: 10
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论