Найти, если в строке есть обратный слеш

У меня есть такая строка:

id=PS\\ Old\\ Gen

и я хотел бы построить регулярное выражение, чтобы выяснить, содержит ли оно обратную косую черту; один за другим. Так что в этом случае регулярное выражение должно найти 2 вхождения, так как есть 2 \\,

Я попытался создать запрос, но не смог понять, как правильно.

Мне нужно регулярное выражение, которое совместимо с Go.

2 ответа

Вы можете использовать strings.Count (myString, \ )

с буквальным примером:

package main

import (
    "fmt"
    "strings"
)

func main() {
    myString := `id=PS\\Old\\Gen`
    a := `\`
    i := strings.Count(myString, a)
    fmt.Println(i)
}

результат = 4

без буквального

package main

import (
    "fmt"
    "strings"
)

func main() {
    myString := "id=PS\\Old\\Gen"
    a := `\`
    i := strings.Count(myString, a)
    fmt.Println(i)
}

Результат =2

если вам просто нужно содержать использование

myString := "id=PS\\ Old\\ Gen"
a:=`\`
i := strings.Contains(myString, a)
fmt.Println(i)

Результат = истина

Похоже, вам не нужно знать положение или происшествие \\ поэтому в этом случае я бы предложил пойти как можно проще:

import "strings"

...

fmt.Println(strings.Contains("id=PS\\ Old\\ Gen", "\\")) // true

Таким образом, вы можете просто хранить "\\" в вашем конфиге.

Другие вопросы по тегам