ile bir regex'in son karakteri nasıl yakalanır Son boşluğu yakalamaya çalışıyorum ve grep kullanarak bir çizgide onu takip ediyorum.Grep
Bu bana ilk alan yakala:
Ben olmayan açgözlü operatörü kullanılmış olurdu ama işe görünmüyor Java'daecho "toto tata titi" | grep -o " .*$"
:
echo "toto tata titi" | grep -o " .*?$"
Hiçbir şey
dönmekBeklenen sonuç titi
.
Sizin düzenli ifadeniz yapmak istediğimi yapar, teşekkürler. Ama biliyormusun benim neden bile -E ile çalışmıyor? – JPB
@ Jean-Philippe: Normal ifade, konu dizgisine soldan sağa doğru uygulandığından, ilk boşlukta başlar, yavaş yavaş sonuna kadar genişler ve böylece başarılı olur. Başka pozisyonları denemeye gerek yok. –
@Jean: '/. *? $ /' Eşleşmesi önce alanı bulur ve oradan eşleşmeye başlar. Dize sonuna kadar eşleşir ve yapılır. Tereddütsüzlük, sadece tercümanın mevcut birimi ('.') aramaya devam edip etmemeye karar vermesi ya da bir sonraki ile eşleşmesi gerektiğinde devreye girer. En kısa çözümü bulana kadar _not_ backtrack yapar. – Tim