-
יש פה שתי סיבוכים, אחד של C# והשני של הregex.
ה| וגם ה?*\ צריכים ביטול ברמת הרגקס וזה נעשה ע"י הקדמת לוכסן הפוך.
הבעיה שלוכסן הפוך יש לו משמעות ברמת הC#, ולכן צריך לעשות שתיים או להקדים לכל המחרוזת שטרודל וזה מבטל את הצורך הזה, ככה:string regExp = Regex.Replace(textBox1.Text, @"\\/:\*\?""<>\|", "");
אני מנחש שהצורך שלך הוא מניעת תויים לא חוקיים בשם תיקיה או קובץ, אז אני מציע לך להשתמש בדרכים יותר מקובלות:
var invalids = Path.GetInvalidFileNameChars(); string regExp = new string(textBox1.Text.Where(n => !invalids.Contains(n)).ToArray());
-