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

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

如何匹配所有重疊模式

如何匹配所有重疊模式

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]]正如您所看到的,兩個點.確實在第二個點之前和后綴#,但它不是由方法返回的FindAllStringSubmatchIndex。我嘗試使用與正則表達式不同的方法但沒有成功。相反,似乎 regexp 本身不支持此功能:// 如果存在“All”,例程將匹配整個表達式的連續(xù)非重疊匹配項。我可以解決這個問題,但由于我正在做這個練習(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貢獻1864條經(jīng)驗 獲得超6個贊

沒有理由為此使用正則表達式。正則表達式對于這樣一個簡單的任務(wù)來說太過分了——它過于復(fù)雜,而且效率較低。相反,您應(yīng)該只使用strings.Index, 和一個 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)

游樂場鏈接


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

TA貢獻1825條經(jīng)驗 獲得超6個贊

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))

}

游樂場:https://play.golang.org/p/nNE5IB1feQT


輸出:


[1 5 10 16 19 22 25]

查看完整回答
反對 回復(fù) 2023-05-22
  • 2 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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