ביטוים רגולריים בC#



  • שלום
    אני מנסה ללמוד אאת השימוש בביטויים רגולריים בC#. הוא כנראה פחות פשוט מהשימוש בJS.
    אני מחפש את קוד הC# המקביל לקוד הבא בJS:

    string.repace(pattern, function(){
        return "$1"+1
    }
    

    בC# לא מצאתי דרך לבצע את ההחלפה באמצעות פונקציה.

      Regex.replace(input, "$1") עבד
    

    אבל

      Regex.replace(unput, function(){
            return "$1" +1
      } לא עבד
    

    תודה


  • תכנות

    nice try...
    הבעיה שלא ככה כותבים פונקציה בC# (פעם ראית את המילה function בקוד של C#?).
    יש שתי דרכים. או לכתוב פונקציה מלאה ולתת את שמה - delegate או להשתמש בפוקנציה inline בדומה לקוד שלך בJS אלא שזה צריך להיות בפורמט ששמו lambda שיש אותו כיום גם בJS תחת השם arrow function.
    ככה זה נראה:

     Regex.Replace("", "", (m) => {
       return m.Groups[1].Value;
     });
    

    אפשר גם לוותר על הסוגריים מסביב לm, וכמו"כ אם התוכן הוא בעל שורה בודדת כמו בדוגמה אז אפשר לוותר על הסוגריים המסולסלות + המילה return :

    Regex.Replace("", "", m => m.Groups[1].Value);

 

בא תתחבר לדף היומי!