Sorunum için uygun bir düzenli ifade oluşturmaya çalışıyorum ve görünüşe göre garip bir soruna yol açtım. Java Regex lookahead çok zaman alır
bana yapmaya çalışıyorum neyi tarif edeyim ..Amacım dize her iki ucundan da virgül kaldırmaktır. E, g, string , ,, ,,, , , Hello, my lovely, world, ,, ,
sadece Hello, my lovely, world
olmalıdır.
Bunu başarmak için regex aşağıdaki hazırladık: Bir bulmak için (\w+,*? *?)+(?=(,?\W+$))
Bu regex doğrulayıcıları içinde bir cazibe gibi çalışır, ancak Android cihazda çalıştırmak çalışıyorum zaman, matcher.find()
fonksiyon için asılı ~ 1dk uygun maç ... sanıyorum, sorun kullanıyorum olumlu lookahead içindedir, ama sadece başından ve sonunda ayrı ayrı virgül Döşeme daha ben daha iyi bir çözüm bulamadık:
output = input.replaceAll("^(,?\\W?)+", ""); //replace commas at the beginning
output = output.replaceAll("(,?\\W?)+$", ""); //replace commas at the end
mi Orada olumlu bir şekilde kaybolduğum bir şey var n Java regex? Başlangıçta ve sonunda virgüller arasındaki dize bölümünü nasıl alabilirim?
arghh ... Ben eşleşen grupları özledim nasıl .. :(Çok teşekkürler benim regex bilgisini tazelemek lazım ... –