2016-03-31 25 views
-1

Programcı değilim, ancak belirli bir amaç için RegEx kullanmak zorundayım. RegEx'ten döndürülenlere belirli karakterleri nasıl eklerim? Bir liste varsaRegEx sonuçlarına karakterleri nasıl eklerim?

Örneğin, aşağıdaki gibi:

XYZ ABC 123 

nasıl her sonuna özgü şeyler eklemek RegEx kullanırım? Örneğin, üçünün de örneğin .com ile bitmesini istiyorsam?

+0

Bunu hangi programlama dilinde yapıyorsunuz? Yoksa Notepad ++ veya Sublime Text gibi bir editör kullanıyor musunuz? – Druzion

+0

Bu regex'in değil. Regex (normal * ifadeler *) sadece * ifadedir * - dizinizin nasıl göründüğünü (ve ne eşleştiğini) ifade eder, ancak değiştirme yapmazlar. Çoğu normal ifade, bir '.replace 'yöntemine sahip olsa da, bununla birlikte, $ 1com (' \ 1.com') ile '([^ \ s] +)' nin yerini alabilirdiniz. – h2ooooooo

+0

Sadece ifade * * ile eşleşen ifadeleri görmek için "regex'i kullanabilirsiniz". İfadeyi değiştirmeden “sonuç” a bir şey ekleyemezsiniz (ve yine de eşleşmelidir). – usr2564301

cevap

0

Sen tam liste ile XYZ abc 123 yerini almak üzere bu senaryoyu deneyebilirsiniz:

echo "XYZ abc 123" | sed -E 's/([a-zA-Z0-9]+)/\1.com/g'

Açıklama:

  • s/ bir ikame Regex
  • ([a-zA-Z0-9]+) Yakalama başlatır en az bir alfanümerik
  • / End regex
  • \1.com kendisiyle yakalama değiştirir artı kullanmak istediğiniz regex motoru, bunu yapmak için birçok yol vardır ki bilmeden

(bütün eşleşmeler için) .com

  • /g Küresel değiştirici ekler . Gelecekte daha fazla bilgi verin.

  • İlgili konular