10 September 2006

Text Punctuation Correction Techniques With Oracle

Daha önceki yazılarımda Oracle 10G ile gelen Regular Expression lardan bahsetmiştim. Bu sayede çok karmaşık pattern ları bulup istediğiniz ölçüde değiştirebilirsiniz. Aşağıda bununla ilgili yapmış olduğum bir çalışmanın örnegi bulunmaktadır. Örnek içinde yapılanlar:
  • Noktalama işaretlerinden sonra gelen boşlukları silmek.
  • Noktalama işaretlerinden sonra bir boşluk karakteri bırakmak.
  • Tekrar eden noktalama işaretlerine karışmamak.("..." gibi)
DECLARE
orginal_str VARCHAR2(1024) := 'Hi everybody.    Everything is good.Great...Yes!You are,the best!!!';
modified_str VARCHAR2(1024);
BEGIN
modified_str := regexp_replace(orginal_str,
'([[:punct:]]+)([[:space:]]*)',
'\1 ',
1,
0);
dbms_output.put_line(orginal_str);
dbms_output.put_line(' modified to ');
dbms_output.put_line(modified_str);
/*
Hi everybody.    Everything is good.Great...Yes!You are,the best!!!
modified to
Hi everybody. Everything is good. Great... Yes! You are, the best!!!
*/

END;

No comments: