PDA

View Full Version : سوال: درخواست کمک برای نوشتن یک RegExp



naeeme
سه شنبه 03 آذر 1388, 12:03 عصر
من یک متن به صورت زیر دارم:

آب:123456:12بهای واحد:14:0جمع:4569:1425

باید متن فوق رو به صورت زیر نشون بدم:

آب 123456 12
بهای واحد 14 0
جمع 4569 1425

نمی دونم از چه قاعده RegExp استفاده کنم که بتونم از این متن سطرها رو در بیارم. در واقه جداکننده سطرها در اینجا کلمات هستند و من باید مثلا "بهای واحد" رو بطور کلی جدا کنم تا بتونم مقادیر اون رو به دست بیارم.
لطفا راه حلی بهم پیشنهاد بدین که بتونم اینها رو از هم جدا کنم.
من خودم به جدا کردن با : فکر کردم اما نتیجه بصورت 12بهای واحد در میاد.

منتظر راه حل‌هاتون هستم:لبخندساده:

hamidsolat
سه شنبه 03 آذر 1388, 12:19 عصر
بهتره از یه حلقه استفاده کنی و توی حلقه کد اسکی کارکترهای غیر عددی رو جست و جو کنی ، هرجایی که این کاراکترو دیدی و حرف بعدی هم غیر عددی بود در محل یکی کمتر از اولین کاراکتر پیدا شده کاراکتر \r رو درج کن.

حامد مصافی
سه شنبه 03 آذر 1388, 12:26 عصر
نیازی به Regex نیست!
فرض: متن مذکور در رشته ای با نام str1 ذخیره شده است.


xsParts[] = str1.split(':');


حال شما یک رشته با نام xsParts داره که به اجزای رشته مذکور شما که در هر ':' از هم جدا شده اند اشاره می کند، عضو اول آن "آب" و عضو دوم آن "12" خواهد بود. حال می توانید فرمت دلخواه را روی آن اعمال کنید.
مثال:


xsResult = xsParts[0] + xsParts[1] + xsParts[2] + "\r\n" +
xsParts[3] + xsParts[4] + xsParts[5] + "\r\n" +
xsParts[6] + xsParts[7] + xsParts[8];

naeeme
سه شنبه 03 آذر 1388, 12:41 عصر
BlackDal دقت نکردین.
من گفته بودم که
من خودم به جدا کردن با : فکر کردم اما نتیجه بصورت 12بهای واحد در میاد.
پس از راه حل شما نمیشه استفاده کرد.

naeeme
سه شنبه 03 آذر 1388, 16:03 عصر
مشکل من حل شد
من با این قاعده می تونم کلمات رو جدا کنم.

[^\d+:]+\w[^\d+:]+