亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在空格上拆分字符串(但不是全部..?)

在空格上拆分字符串(但不是全部..?)

Go
開滿天機 2022-08-15 16:54:14
在這里,我有一個模擬函數,它采用單個字符串中多個單詞的單個參數,例如 等。"hello1 hello2 hello3 hello4 hello5 hello6 hello7"該函數將首先執行匹配以查看該單詞是否在它收到的字符串中,然后繼續將字符串拆分為參數。如果沒有匹配,則執行其他操作。contentcontent我的函數正在處理此數據,預期為 5 個參數。dosomething我現在的問題是,我怎么能用分隔符空間來分割它們,但后面的所有內容都應該是下面的一部分。hello5arg5目前我沒有辦法確切地知道有多少個參數將進入,因此連接固定參數將不起作用,它需要是動態的(這是我的假設)。mystring我希望這是有道理的func testing(mystring) {    matched, err := regexp.MatchString(`content`, mystring)    if err != nil { panic() }    if matched {        r := regexp.MustCompile("[^\\s]+")        arguments := r.FindAllString(clientRequest, -1)        arg1 := string(arguments[1])        arg2 := string(arguments[2])        arg3 := string(arguments[3])        arg4 := string(arguments[4])        arg5 := string(arguments[5])        dosomething(arg1, arg2, arg3, arg4, arg5)    } else {        log.Println("Not matched")    }}
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

字符串。SplitN完全符合您的要求。

下面是一個小演示:


package main


import (

    "fmt"

    "strings"

)


func main() {

    fmt.Printf("%q\n", strings.SplitN("a b c d e f g", " ", 5))

}

輸出:


["a" "b" "c" "d" "e f g"]

我還建議添加一個額外的語句來檢查返回正確長度的切片。ifstrings.SplitN


查看完整回答
反對 回復 2022-08-15
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

如果您確定要搜索的是單詞而不是正則表達式模式,則可以使用以下方法:

exists := strings.Index(str, "content")

這將返回 出現的第一個索引,如果未找到,則返回。如果找到匹配項,則可以拆分字符串,直到找到 。content-1index-1

以下是操場上的一個示例,可幫助您:https://play.golang.org/p/QT39T6hStul


查看完整回答
反對 回復 2022-08-15
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號