第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何匹配所有重疊模式

如何匹配所有重疊模式

Go
MMTTMM 2023-05-22 17:05:22
(\.\.#\.\.)我想在以下字符串中獲取以下模式的索引:...#...#....#.....#..#..#..#.......但是 Golang 不管理重疊匹配。因此我得到了:[[1 6 1 6] [10 15 10 15] [16 21 16 21] [22 27 22 27]]正如您所看到的,兩個(gè)點(diǎn).確實(shí)在第二個(gè)點(diǎn)之前和后綴#,但它不是由方法返回的FindAllStringSubmatchIndex。我嘗試使用與正則表達(dá)式不同的方法但沒有成功。相反,似乎 regexp 本身不支持此功能:// 如果存在“All”,例程將匹配整個(gè)表達(dá)式的連續(xù)非重疊匹配項(xiàng)。我可以解決這個(gè)問題,但由于我正在做這個(gè)練習(xí)來學(xué)習(xí) Golang,所以我想知道。謝謝 :)這是我的參考代碼:? ? ? ? matches := r.pattern.FindAllStringSubmatchIndex(startingState)? ? ? ? fmt.Println(r.pattern)? ? ? ? fmt.Println(matches)? ? ? ? for _, m := range matches {? ? ? ? ? ? tempState = tempState[:m[0]+2] + "#" + tempState[m[0]+3:]? ? ? ? ? ? fmt.Println(tempState)? ? ? ? }
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

沒有理由為此使用正則表達(dá)式。正則表達(dá)式對(duì)于這樣一個(gè)簡(jiǎn)單的任務(wù)來說太過分了——它過于復(fù)雜,而且效率較低。相反,您應(yīng)該只使用strings.Index, 和一個(gè) for 循環(huán):

input := "...#...#....#.....#..#..#..#......."

idx := []int{}

j := 0

for {

? ? i := strings.Index(input[j:], "..#..")

? ? if i == -1 {

? ? ? ? break

? ? }

? ? fmt.Println(j)

? ? idx = append(idx, j+i)

? ? j += i+1

}

fmt.Println("Indexes:", idx)

游樂場(chǎng)鏈接


查看完整回答
反對(duì) 回復(fù) 2023-05-22
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

Go是給程序員的。例如,


package main


import (

? ? "fmt"

? ? "strings"

)


func findIndices(haystack, needle string) []int {

? ? var x []int

? ? for i := 0; i < len(haystack)-len(needle); i++ {

? ? ? ? j := strings.Index(haystack[i:], needle)

? ? ? ? if j < 0 {

? ? ? ? ? ? break

? ? ? ? }

? ? ? ? i += j

? ? ? ? x = append(x, i)

? ? }

? ? return x

}


func main() {

? ? haystack := `...#...#....#.....#..#..#..#.......`

? ? needle := `..#..`

? ? fmt.Println(findIndices(haystack, needle))

}

游樂場(chǎng):https://play.golang.org/p/nNE5IB1feQT


輸出:


[1 5 10 16 19 22 25]

查看完整回答
反對(duì) 回復(fù) 2023-05-22
  • 2 回答
  • 0 關(guān)注
  • 119 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)