Как сопоставить любой повторяющийся символ с помощью регулярных выражений в Go?
В этой статье мы рассмотрим задачу сопоставления любого символа, который повторяется дважды с использованием регулярных выражений в Go. Эта задача часто проста в других синтаксисах регулярных выражений, таких как JavaScript, где можно просто использовать обратную ссылку для сопоставления повторяющихся символов. Однако собственный механизм регулярных выражений Go (re2) не поддерживает обратные ссылки.
Невозможно использовать обратную ссылку в re2 Go
Приведенный пример JavaScript использует обратную ссылку для захвата повторяющиеся символы:
var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))
Этот шаблон не будет работать в Go re2 из-за отсутствия поддержки обратных ссылок.
Альтернативы Go re2
Чтобы устранить это ограничение, рассмотрите следующие альтернативы:
Пример пользовательского решения цикла
package main
import (
"fmt"
"regexp"
)
func main() {
str := "abccdeff"
// Find and print repeating characters without using regex
for i, ch := range str {
if i 1
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3