Go で正規表現を使用して繰り返し文字を一致させるには?
この記事では、次のような文字を一致させるという課題に取り組みます。 Go の正規表現を使用して 2 回繰り返します。このタスクは、JavaScript などの他の正規表現構文では簡単な場合が多く、後方参照を使用して繰り返し文字と一致させるだけです。ただし、Go のネイティブ正規表現エンジン (re2) は後方参照をサポートしていません。
Go の re2 では後方参照を使用できません
提供されている JavaScript の例では、後方参照を利用してキャプチャを行っています。繰り返し文字:
<code class="javascript">var str = "abccdeff"; var r = /([a-z]{1})/g console.log(str.match(r))</code>
このパターンは、後方参照のサポートがないため、Go の re2 では失敗します。
Go の re2 の代替
この制限に対処するには、次の代替案を検討してください:
カスタム ループ ソリューションの例
<code class="go">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 < len(str) && ch == rune(str[i+1]) { fmt.Printf("Found repeated character: %c\n", ch) } } }</code>
以上がGo で後方参照なしで繰り返し文字を照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。