Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > Regular Expressions
Yazar
logos


avatar

Kayıt: 19.01.2006
15.06.2009-11:52 #61170
Merhaba arkadaşlar. Regular expressions ile bir string den belli kelimeleri çekmeye çalışıyorum. Bunları daha sonra replace edeceğim. Şimdi uğraştığım olay şöyle;
Başında ve sonunda herhangi bir tırnak işareti olmayan tüm kelimeleri yakalayıp daha sonra onların başına tırnak ekleyerek değiştireğim.

ör string: kelime01 kelime02 kelime03 'kelime 04 ? * - / kelime 05'
replace etmek istediğim hali: "kelime01" "kelime02" "kelime03" 'kelime 04 ? * - / kelime 05'

şimdi regex olarak, '.*' olarak aldığımda bu tek tırnak içindeki grubu yakalıyorum. Ancak ben bu grup dışındaki bütün kelimeleri yakalamak istiyorum, önerisi olan var mı?





Yazar
ali


avatar
istanbul
admin
Kayıt: 04.01.2006
15.06.2009-14:33 #61184
logos yazdi
 
Merhaba arkadaşlar. Regular expressions ile bir string den belli kelimeleri çekmeye çalışıyorum. Bunları daha sonra replace edeceğim. Şimdi uğraştığım olay şöyle;
Başında ve sonunda herhangi bir tırnak işareti olmayan tüm kelimeleri yakalayıp daha sonra onların başına tırnak ekleyerek değiştireğim.

ör string: kelime01 kelime02 kelime03 'kelime 04 ? * - / kelime 05'
replace etmek istediğim hali: "kelime01" "kelime02" "kelime03" 'kelime 04 ? * - / kelime 05'

şimdi regex olarak, '.*' olarak aldığımda bu tek tırnak içindeki grubu yakalıyorum. Ancak ben bu grup dışındaki bütün kelimeleri yakalamak istiyorum, önerisi olan var mı?


en basit cozum ilk once tirnakli olanlari alip geri kalan her grup icin bosluk la arama yapmak olur.

[a-z]{6}[0-9]{2} her aradigin 'kelimeXX' ile eslesir ama bu tam olarak ihtiyacini karsilamayabilir. ayrica yapacagin isin turune gore unix toollarini (awk, sed, grep ...) kullanmani oneririm.

duzenlemek istedigin metnin bir parcasini verirsen daha net cevaplar bulabilirsin.





free software is a matter of liberty, not price. to understand the concept, you should think of free speech, not free beer.
Yazar
logos


avatar

Kayıt: 19.01.2006
15.06.2009-14:42 #61185
Düzenlemek istediğim kelime şöyle bir şey:

insert into table01 (column1, column2, column3, iscolumn4) values(123, '12-qweqwe+*/_?3', "asd", 345)

bu sadece örnek, amacım ise şu, sql string lerinde column isimlerini ve tablo isimlerini yakalayıp onlara delimited identifier eklemek istiyorum. Şu an için bu regex:

(?i)(?s)\b(?<!'.*|.*')(?!\d|values|insert|into)(\w+)\b


işe yarıyor, ileride tekrar patlatırsa bir kez daha el atmam gerekecek, yine de sağol cevabın için peace





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb