PDA

View Full Version : سوال: جدا سازی نام



abasfar
جمعه 15 بهمن 1389, 12:28 عصر
سلام من یک رشته بزرگ دارم (متن) که میخوام اسم را از ان تشخیص داده وجدا کنم که البته یک regex دارم اونم ایمیل است یعنی اسم کنار ایمیل را میخوام بردارم حالا اسم چه فارسی چه به انگلیسی باشه حالا چی کار کنم ممنون میشم کمک کنید

abasfar
جمعه 15 بهمن 1389, 19:29 عصر
کسی نیست حتی مدیران کسی پیشنهاد هم ندارد من منتظرم

binyaft
جمعه 15 بهمن 1389, 20:38 عصر
اون رشته رو بزارید یا یک مثال بزنید!

abasfar
جمعه 15 بهمن 1389, 23:02 عصر
خوب ممنون از جوابتان اینجا عباس را میخوام


سلام خوبین من هم همجنین من را شناختی عباس hjhj@gmail.com هستم تماس بگیر ممنون

abasfar
جمعه 15 بهمن 1389, 23:43 عصر
ااون یکمی به هم خرد



طراح قالب. موسسه حامد. ايميل من. mr.r56m@yahoo.com. ارسال به دوستان. آدرس پست الکترونيک گيرنده : آدرس پست الکترونيک فرستنده : نام و نام خانوادگي فرستنده

ghasemweb
شنبه 16 بهمن 1389, 00:00 صبح
قبلا در این مورد بحث شده بود.جستجو کنید
در ضمن چون معلوم نیست اسم کجای جمله هست تقریبا نشدنیه !

abasfar
شنبه 16 بهمن 1389, 15:19 عصر
به نظر من میشه این کار را کرد که تمام نامهای معقول را در یک جدول ذخیره کرد وسپس با یک الگریتم خوب پیدا کرد فقط بار cpu میشه تحمل کرد به نظر شما


قبلا در این مورد بحث شده بود.جستجو کنید


در ضمن هیچ پستی در این مورد به نتیجه نرسیده است

MMSHFE
یک شنبه 17 بهمن 1389, 09:43 صبح
دوست گرامي، از اونجا كه در ايميل معمولاً فاصله وجود نداره، شما اول بايد رشته رو براساس فاصله تفكيك كنيد و بعد هر قسمت رو بررسي كنيد و اگه موردي پيدا شد، اون رو ذخيره كنيد. مثال:


<?PHP
$string='سلام خوبین من هم همجنین من را شناختی عباس abfa2005@gmail.com هستم تماس بگیر ممنون';
$parts=split(' ',$string);
foreach($parts as $part)
{
$pos=strpos($part,'@');
if($pos!==false)
{
$name[]=substr($part,$pos);
}
}
?>

بعد از اجراي كد بالا، تمام اسامي موجود به شرطي كه بعد از اونها @ آمده باشه ذخيره ميشن. البته اين يك مثال ساده است و با استفاده از RegEx ميشه پيشرفته ترش كرد كه آدرس معتبر ايميل بگيره چون اين مثال، فقط وجود @ رو بررسي ميكنه.
در جواب دوست خوبمون هم كه گفتن غير ممكنه، توجهتون رو به ترجمه امضاي خودم جلب ميكنم!
موفق و مؤيد باشيد.

abasfar
یک شنبه 17 بهمن 1389, 10:19 صبح
دوست گرامي، از اونجا كه در ايميل معمولاً فاصله وجود نداره، شما اول بايد رشته رو براساس فاصله تفكيك كنيد و بعد هر قسمت رو بررسي كنيد و اگه موردي پيدا شد، اون رو ذخيره كنيد. مثال:


<?PHP
$string='سلام خوبین من هم همجنین من را شناختی عباس abfa2005@gmail.com هستم تماس بگیر ممنون';
$parts=split(' ',$string);
foreach($parts as $part)
{
$pos=strpos($part,'@');
if($pos!==false)
{
$name[]=substr($part,$pos);
}
}
?>

بعد از اجراي كد بالا، تمام اسامي موجود به شرطي كه بعد از اونها @ آمده باشه ذخيره ميشن. البته اين يك مثال ساده است و با استفاده از RegEx ميشه پيشرفته ترش كرد كه آدرس معتبر ايميل بگيره چون اين مثال، فقط وجود @ رو بررسي ميكنه.
در جواب دوست خوبمون هم كه گفتن غير ممكنه، توجهتون رو به ترجمه امضاي خودم جلب ميكنم!
موفق و مؤيد باشيد.
ممنون از جواب شما اما شما منضورتان جدا سازی ایمیل است یا نام صاحب ایمیل من میخوام نام صاحب ایمیل را بدست بیارم

sattaryekta
یک شنبه 17 بهمن 1389, 11:22 صبح
به نظر من باید ابتدا تمام نام های فارسی را در یک آرایه یا یک جدول ذخیره کنی.
و به کمک اون اسامی جستجو کنی در غیر اینصورت PHP تفاوت بین دو کلمه را نمی فهمه. نمی دونه کدوم فعله و کدوم اسم.
مثلا در جمله : امروز جمعه است
جمعه اسم آدمی نیز هست. برای اینگونه موارد هم باید راهکاری اندیشیده شود.
مگر اینه ایمیل های شما یک فرمت همیشه ثابت داشته باشد و مثلا اسم مورد نظر شما همیشه در یک جای خص ایمیل قرار داشته باشه. مثلا بین دو تگ.

MMSHFE
یک شنبه 17 بهمن 1389, 11:37 صبح
دوست گرامي كدي كه نوشتم فقط نام صاحب ايميل رو برميگردونه (قسمت قبل از @) و به بقيه كاري نداره. موفق باشيد.

abasfar
یک شنبه 17 بهمن 1389, 11:41 صبح
دوست گرامي كدي كه نوشتم فقط نام صاحب ايميل رو برميگردونه (قسمت قبل از @) و به بقيه كاري نداره. موفق باشيد.

مگه قبل از @ نام صاحب ایمیل است مثال


abfa2005@gmail.com

ممنون از جواب شما

abasfar
یک شنبه 17 بهمن 1389, 11:43 صبح
به نظر من باید ابتدا تمام نام های فارسی را در یک آرایه یا یک جدول ذخیره کنی.
و به کمک اون اسامی جستجو کنی در غیر اینصورت PHP تفاوت بین دو کلمه را نمی فهمه. نمی دونه کدوم فعله و کدوم اسم.
مثلا در جمله : امروز جمعه است
جمعه اسم آدمی نیز هست. برای اینگونه موارد هم باید راهکاری اندیشیده شود.
مگر اینه ایمیل های شما یک فرمت همیشه ثابت داشته باشد و مثلا اسم مورد نظر شما همیشه در یک جای خص ایمیل قرار داشته باشه. مثلا بین دو تگ.
به نظر شما سرور زیاد مشغول نمیشه چون ببینید چندتا نام داریم دورست پیشنهاد خودم اما...
ممنون ازجواب شما

MMSHFE
یک شنبه 17 بهمن 1389, 11:46 صبح
با سلام مجدد، شرمنده انگار تازه متوجه شدم دقيقاً چي ميخواين. كدي كه دادم، نام كاربري ايميل رو برميگردونه و به اين كار نداره كه ايميل كجاي جمله باشه. حتي اگه 100 تا ايميل هم توي رشته وارد كنيد، نام كاربري همه رو بر ميگردونه. اما براي نام فرد، همونطور كه دوستان گفتن، چون معلوم نيست كجاي جمله قرار داره، يا بايد ساختار مشخصي براي جمله ايجاد كنيد يا اينكه اسامي معروف رو در بانك اطلاعاتي بگذاريد و با مقادير اون مقايسه كنيد. راه ديگري نيست.
موفق و مؤيد باشيد.

abasfar
یک شنبه 17 بهمن 1389, 11:49 صبح
دشمن شما شرمنده خواهش میکنم ممنون هستم از جواب شما

abasfar
یک شنبه 17 بهمن 1389, 15:29 عصر
کسی جدول تمام نام های ایرانی را به صورت فارسی و انگلیسی داره میشه اینجا بزاره ما هم استفاده کنیم ممنون میشم

abasfar
یک شنبه 17 بهمن 1389, 22:52 عصر
دوستان من منتظرم

ghasemweb
دوشنبه 18 بهمن 1389, 20:26 عصر
به نظر من میشه این کار را کرد که تمام نامهای معقول را در یک جدول ذخیره کرد وسپس با یک الگریتم خوب پیدا کرد فقط بار cpu میشه تحمل کرد به نظر شما


در ضمن هیچ پستی در این مورد به نتیجه نرسیده است

این تایپیک شبیه همین سوال شماست :

جدا سازی نام از فامیلی (http://barnamenevis.org/showthread.php?270888-%D8%AC%D8%AF%D8%A7-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%86%D8%A7%D9%85-%D8%A7%D8%B2-%D9%81%D8%A7%D9%85%DB%8C%D9%84%DB%8C)


که در نهایت راه حل همین تایپیک شما مطرح شده.
موفق باشید