12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package main
- import (
- "bytes"
- "fmt"
- "log"
- "regexp"
- "sort"
- "strings"
- "golang.org/x/net/html"
- )
- // SplitTextByChinesePunctuation splits the input text by Chinese punctuation and spaces.
- func SplitTextByChinesePunctuation2(text string) []string {
- // Regular expression pattern for Chinese punctuation and spaces
- pattern := `[,。!?、;:]|\s+`
- re := regexp.MustCompile(pattern)
- // Split the text by the pattern
- parts := re.Split(text, -1)
- // Filter out empty strings resulting from split
- var result []string
- for _, part := range parts {
- trimmed := strings.TrimSpace(part)
- if trimmed != "" {
- result = append(result, trimmed)
- }
- }
- return result
- }
- // RemoveDuplicates removes duplicates from a sorted slice.
- func RemoveDuplicates2(strs []string) []string {
- if len(strs) == 0 {
- return strs
- }
- sort.Strings(strs)
- j := 0
- for i := 1; i < len(strs); i++ {
- if strs[j] != strs[i] {
- j++
- strs[j] = strs[i]
- }
- }
- return strs[:j+1]
- }
- // CleanHTMLTags removes all HTML tags from the input HTML string and returns the plain text.
- func CleanHTMLTags2(htmlContent string) (string, error) {
- doc, err := html.Parse(strings.NewReader(htmlContent))
- if err != nil {
- return "", err
- }
- var buf bytes.Buffer
- var f func(*html.Node)
- f = func(n *html.Node) {
- if n.Type == html.TextNode {
- buf.WriteString(n.Data)
- }
- for child := n.FirstChild; child != nil; child = child.NextSibling {
- f(child)
- }
- }
- f(doc)
- // Remove leading and trailing white space
- trimmedText := strings.TrimSpace(buf.String())
- return trimmedText, nil
- }
- func main2() {
- htmlContent := `
- <br/> <br/> <b></b> <br/> <b>致各潜在供应商:</b> <br/> 按照公司车辆使用计划,现需采购商务车一辆。请各位潜在供应商参加我司北京办公区行政车辆的谈判采购。现就有关事宜告知如下: <b>1.</b><b>采购需求</b><b></b> <br/> <br/> <table border=\"0\"> <tbody> <tr> <td v=\"\"> <br/> <b>物资名称</b><b></b> </td> <td v=\"\"> <br/> <b>规格型号</b><b></b> </td> <td v=\"\"> <br/> <b>计量单位</b><b></b> </td> <td v=\"\"> <br/> <b>暂定数量</b><b></b> </td> <td v=\"\"> <br/> <b>备注</b><b></b> </td> </tr> <tr> <td v=\"\"> <br/> 商务用车 </td> <td v=\"\"> <br/> 别克GL8 </td> <td v=\"\"> <br/> 辆 </td> <td v=\"\"> <br/> 1 </td> <td v=\"\"> <br/> 排气量3.0升以下 </td> </tr> </tbody> </table> <b>2.付款方式</b><b></b> <br/> 谈判结束,与中标单位签订合同后,付100%预付款。 3.<b>投标人资格要求:</b><b></b> <br/> <b>3.1 </b><b>基本资质</b>:4S店需要具备合法的经营凭证和资格,具备企业营业执照、税务登记证等。以及获得汽车品牌的授权,包括销售、使用店铺名称、商标、标识等。 <br/> <b>3.2 </b><b>销售和售后服务体系:</b>需要建立完善的汽车销售和售后服务体系,保证相应的配件供应,提供及时、有效的售后服务。严格遵守家用汽车产品“三包”、召回等规定,确保消费者合法权益。 <br/> <br/> <b>3.3 </b><b>信用要求:</b>未被“信用中国”网站列入失信被执行人、重大税收违法案件当事人名单、政府采购严重违法失信行为记录名单。近两年内在中交(厦门)电子商务有限公司无不良行为记录。 <b>4.采购资料的获取:</b><b></b> <br/> 采购人于2024年12月27日至2025年1月2日,通过中交集团交融智链平台发布采购公告。请有意参与投标单位参与响应。 <br/> 报价方式:请各意向投标人将加盖公章的报价单在1月2日16时前发送至邮箱:zhanghan@ccccltd.cn。 <b>5.发布公告的媒介:</b><b></b> <br/> 本次采购公告在中交集团交融智链平台上公开发布。 <b>6.采购人信息:</b><b></b> <br/> ·<b>联系人</b>:张女士 <br/> ·<b>联系电话</b>:13701077123 <br/> <br/> 中交(厦门)电子商务有限公司 <br/> 2024年12月27日
- `
- plainText, err := CleanHTMLTags(htmlContent)
- if err != nil {
- fmt.Println("Error:", err)
- return
- }
- fmt.Println(plainText)
- characterArray := SplitTextByChinesePunctuation(plainText)
- uniqueArray := RemoveDuplicates(characterArray)
- for k, v := range uniqueArray {
- log.Println(k, v)
- }
- log.Println(len(characterArray), len(uniqueArray))
- }
|