Arkadaşlar üzerinde çalıştığım bir projede, tüm paragrafların içerisindeki kelimeleri tek tek elde edip bir diziye aktarmam lazım. Her kelimenin başına ve sonuna belli tag ekleyip veritabanına atmam lazım. Php explode ile kelimeler arası boşluktan faydalanarak kelimelerine ayırabilirim fakat ya kelimenin sonunda virgül gibi bir noktalama işareti varsa ve sonrasında boşluk yoksa, kelimeyi nasıl ayırabilirim? Ayrıca noktalama işaretlerini de korumam lazım. Bildiğiniz bir script var mı?
Bahsettiğin olayı Perl de cesitli yollardan yapmak mümkün, PHP'deki explode gibi Perl'de split fonksiyonuna " " ayracı vererek, Text::ParseWords modulü kullanarak, Türkçe'ye özel kelimeler için Lingua modülü kullanarak ve bunlardan hiçbirini kullanmadan Regular Expression kullanarak:
PHP'yi bıraktığım için Perl ile bir örnek:
Regular Expression 'da parantez hem gruplama hem de "capture" yani istenen kelimeyi çekmek için kullanılıyor. RegExp içinde en dıştaki parantez, kelimeyi cekip @words dizisine eklemek için, ortadaki (?:[-']\w+) parantez ise kelimeler arasında - ve ' gibi işaretli olanları da tek kelime olarak gruplamak için. Biraz karışık oldu kabul ediyorum fakat RegExp 'le bu sayede cok kısa bir tanımla birçok işlemi yapabiliyorsun, avantajı o. PHP de RegExp'i destekliyor, yani bu RegExp'i PHP'de kullanabilirsin.
If koşullu yapısı içinde strpos fonksiyonu ile olası tüm imla karakterlerini kontrol edip explode ile ayırabilirsiniz. Veya Regex kullanışlı olabilir ayrıca.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme