ביטוים רגולריים ב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);