نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل کاراکترهای ویژه مثل نقطه و ویرگول

  1. #1

    مشکل کاراکترهای ویژه مثل نقطه و ویرگول

    سلام.
    می‌خوام در یک متن یک کلمه رو جستجو کنم و کلمه‌ای دیگه به جاش جایگزین کنم. مثلاً می‌خوام به جای کلمۀ «دیوار» کلمۀ «در» رو جایگزین کنم. این مسأله خیلی ساده به نظر می‌رسه ولی وقتی از replace رشته در سی‌شارپ استفاده می‌کنم، اگر «دیوارها» رو پیدا کنه تبدیل به «درها» می‌کنه و این مطلوب نیست. طبیعتاً برای حل این مشکل باید به جای «%دیوار%» دنبال دیوار با دو طرف کلمه space بگردم ولی مشکل اینجاست که ممکنه بعد یا قبل از «دیوار» بلافصله کاراکترهای ویژه مثل نقطه یا ویرگول باشد و غیره باشد که این باعث میشه که این حالت رو پیدا نکنه.
    چه کار میشه کرد؟ آیا استفاده از RegEx کمک می‌کنه؟ اگر بله چطور؟

  2. #2
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,773

    نقل قول: مشکل کاراکترهای ویژه مثل نقطه و ویرگول

    با سلام
    بدلیل اینکه توضیحتون زیاد واضح نیست، جواب نگرفتید
    مثلاً اگر بعد از دیوار (،) گذاشته شود کلاً چنین نگارشی غلط هست => دیوار، ها
    چند جمله از مشکلات بوجود اومده مثال بزنید تا بهتر بشه راهنمایی کرد
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  3. #3
    مدیر کل سایت آواتار محمد آشتیانی
    تاریخ عضویت
    مهر 1384
    محل زندگی
    تهران
    پست
    1,484

    نقل قول: مشکل کاراکترهای ویژه مثل نقطه و ویرگول

    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  4.  

  5. #4
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    29
    پست
    480

    نقل قول: مشکل کاراکترهای ویژه مثل نقطه و ویرگول

    نقل قول نوشته شده توسط aliahmadi مشاهده تاپیک
    سلام.
    می‌خوام در یک متن یک کلمه رو جستجو کنم و کلمه‌ای دیگه به جاش جایگزین کنم. مثلاً می‌خوام به جای کلمۀ «دیوار» کلمۀ «در» رو جایگزین کنم. این مسأله خیلی ساده به نظر می‌رسه ولی وقتی از replace رشته در سی‌شارپ استفاده می‌کنم، اگر «دیوارها» رو پیدا کنه تبدیل به «درها» می‌کنه و این مطلوب نیست. طبیعتاً برای حل این مشکل باید به جای «%دیوار%» دنبال دیوار با دو طرف کلمه space بگردم ولی مشکل اینجاست که ممکنه بعد یا قبل از «دیوار» بلافصله کاراکترهای ویژه مثل نقطه یا ویرگول باشد و غیره باشد که این باعث میشه که این حالت رو پیدا نکنه.
    چه کار میشه کرد؟ آیا استفاده از RegEx کمک می‌کنه؟ اگر بله چطور؟
    توی پردازش رشته هیچ چیز قدرتمندتر از regex نیست. پس همین رو ادامه بده

  6. #5
    کاربر دائمی آواتار sds1920
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    سن
    29
    پست
    480

    نقل قول: مشکل کاراکترهای ویژه مثل نقطه و ویرگول

    برای مثال چیزی به ذهن من میرسه کد زیر هست. ولی نمیگم 100% درسته. باید حالتهایی که میخوای رو تست کنی.


    string str="سلام به دیواریهای. عزیز";
    var regex = new Regex(@"\s*دیوار\w*[.،:;]*\s*");
    var match = regex.Match(str);
    if (match.Success)
    Console.WriteLine(str.Substring(match.Index, match.Length));

تاپیک های مشابه

  1. سوال: تابع تبدیل به کاراکترهای ویژه
    نوشته شده توسط terminator_o در بخش PHP
    پاسخ: 2
    آخرین پست: سه شنبه 14 دی 1389, 03:28 صبح
  2. سوال: مشکل کاراکترهای فارسی در 2008
    نوشته شده توسط m_master22 در بخش SQL Server
    پاسخ: 8
    آخرین پست: سه شنبه 18 آبان 1389, 10:46 صبح
  3. مشكل با تاريخي مثل 1387/02/31
    نوشته شده توسط darrudi در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: یک شنبه 19 آبان 1387, 17:37 عصر
  4. طریقه استفاده از کاراکترهای ویژه در بیسیک
    نوشته شده توسط m_vb1386 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: شنبه 18 خرداد 1387, 09:43 صبح
  5. مشکل شماره گذاری و نقطه
    نوشته شده توسط yavari در بخش گزارش سازی با Crystal Report
    پاسخ: 8
    آخرین پست: چهارشنبه 21 فروردین 1387, 20:15 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •