PDA

View Full Version : سوال: جداسازی کلمات با RegEx



bahrammzm
شنبه 29 آذر 1393, 17:13 عصر
سلام دوستان
فرض کنید یک فایل docx داریم که می خوایم کلماتش را با تابع preg_split جدا کنیم .اینکارو انجام میده اما نمیدونم مشکل از کجاست که به آرایه 0 و آخرین آرایه یه مقدار خالی اختصاص میده! کد :

$split_words=preg_split("@[\s,.]+@",$striped_content)


متغیر striped_content محتوای یک فایل docx هست.

خروجی :



array (size=28)
0 => string '' (length=0)
.
.
.
27 => string '' (length=0)

H:Shojaei
شنبه 29 آذر 1393, 21:03 عصر
تست کردم بار اول دقیقا چیزی که گفتید بود ولی بار دوم به بعد همه چی درست بود و اولی و آخری هم مقدار گرفته بود!!!!!!؟؟؟؟؟؟؟
البته همون ار اول هم که اینطوری شد اولین کلمه رو کلا در نظر نگرفته بود و فاصله بعد از اون رو در نظر گرفته بود نمیدونم چرا...!

bahrammzm
شنبه 29 آذر 1393, 21:46 عصر
تست کردم بار اول دقیقا چیزی که گفتید بود ولی بار دوم به بعد همه چی درست بود و اولی و آخری هم مقدار گرفته بود!!!!!!؟؟؟؟؟؟؟
البته همون ار اول هم که اینطوری شد اولین کلمه رو کلا در نظر نگرفته بود و فاصله بعد از اون رو در نظر گرفته بود نمیدونم چرا...!
الان من چیکار کنم بنظر شما ! احتمالا از دستور RegEx باشه ، چون زیاد مسلط نیستم ، کسی نمیدونه آیا؟!

سوداگر
شنبه 29 آذر 1393, 22:04 عصر
در صورتی که کاراکتر اول یا آخر یا هردو . یا فضای خالی باشن این مشکل پیش میاد regular expression شما درسته و میتونید قبل از ارسال striped_content به preg_split اون رو به تابع trim بفرستید. یکبار کاراکتر . یکبار فضای خالی :خجالت:


$striped_content=trim ( $striped_content ,'.');
$striped_content=trim ( $striped_content ,' ');