-
אני רוצה רגקס שימנע כתיבה של התווים האלה:
\/:*?"<>|
זה בערך הקוד
string regExp = Regex.Replace(textBox1.Text, @"(\|/|:|\*|\?|\"|<|>|\|)", "");
נתקעתי ב
"
וב\
מה צריך לתקן? תודה רבה לעוזרים -
יש פה שתי סיבוכים, אחד של 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()); -
@נ-נח אמר בעזרה c# | בעיה עם תווים ברגקס:
string regExp
השם של המשתנה לא משקף את מהותו. משתנה בשם
regExp
בד"כ מורה על זה שהוא מכיל regex. (תמהתי על זה בקוד של דוד. אבל אז הבנתי שהוא העתיק ממך). -
4/4