كيفية مطابقة أي حرف متكرر باستخدام التعبيرات العادية في Go؟
في هذه المقالة، سنواجه التحدي المتمثل في مطابقة أي حرف يتكرر مرتين باستخدام التعبيرات العادية في Go. غالبًا ما تكون هذه المهمة واضحة في صيغ التعبير العادي الأخرى، مثل JavaScript، حيث يمكن للمرء ببساطة استخدام المرجع الخلفي لمطابقة الأحرف المتكررة. ومع ذلك، فإن محرك التعبير العادي الأصلي لـ Go (re2) لا يدعم المرجع الخلفي.
لا يمكن استخدام المرجع الخلفي في re2 الخاص بـ Go
يعمل مثال JavaScript المقدم على تعزيز المرجع الخلفي لالتقاطه أحرف مكررة:
var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))
قد يفشل هذا النمط في Go's re2 بسبب نقص دعم المرجع الخلفي.
بدائل Go's 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