2016-04-14 34 views
2

olduğunca az olaylar Eşleştirme Regex:Normal İfade - olası

/(?!\s)([^]+?)\s*((?!.+\)\s*\()\([^-].+ \d{2}\/\d{2}\/\d{4} .+\))/g 


Girdi:

Bazı notlar (BAZI KULLANICI (SU950) 16/09/2015 16 : 56: 38) Diğer bazı notlar (ANOTHER> USER (AU951) 16/09/2015 16:56:38)

Örnek Notlar tipi: ARKA giden arama (kullanıcı adı (UN973) 18/09/2015 11:49:10) birden fazla satır üzerinde

bazı notlar

notlar ikinci hat (kullanıcı adı (UN973) 18/09/2015 11:52:24)

Yeni bir not. (Kullanıcı adı (UN973) 18/09/2015 11:55:15)


Beklenen Çıkış:

  • bazı notlar (bazı kullanıcı (SU950) 16/09/2015 16 : 56: 38)
    • bazı notlar
    • (bazı kullanıcı (SU950) 16/09/2015 16:56:38)
  • Başka notlar (başka> KULLANICI (AU951) 16/09/2015 16:56:38)
    • Başka notlar
    • (başka> KULLANICI (AU951) 16/09/2015 16:56: 38)
  • Örnek Notlar Tipi: GERİ OUTBOUND ÇAĞRI (KULLANICI ADI (UN973) 18/09/2015 11:49:10)
    • Örnek Notlar Tipi: OUTBOUND ÇAĞRI GERİ
    • (KULLANICI ADI (UN973) 18/09/2015 11:49:10)
  • birden fazla satır notlar ikinci hat (kullanıcı adı (UN973) 18/09/2015 11:52:24) birden fazla satır notlar ikinci hat
  • üzerinde
    • bazı notlar bazı notlar (KULLANICI ADI (UN973) 18/09/2015 11:52:24)
  • Yeni bir not. (KULLANICI ADI (UN973) 18/09/2015 11:55:15)
    • Yeni bir not.
    • (kullanıcı adı (UN973) 18/09/2015 11:55:15)


gerçek çıktı:

  • Bazı notlar (bazı kullanıcı (SU950) 16/09/2015 16:56:38) Diğer bazı notlar (ANOTHER> USER (AU951) 16/09/2015 16:56:38)
    • bazı notlar
    • (bazı kullanıcı (SU950) 16/09/2015 16:56:38) Başka notlar (başka bir kullanıcı (AU951) 16/09/2015 16:56:38)
  • Örnek Notlar Tipi: ARKA giden arama (kullanıcı adı (UN973) 18/09/2015 11:49:10)
    • Örnek Notlar Tipi: giden arama GERİ
    • (kullanıcı adı (UN973) 18.09.2015 11:49:10)
  • birden fazla satır notlar ikinci hat (kullanıcı adı (UN973) 18/09/2015 11:52:24) banknot ikinci hat
  • (KULLANICI birden fazla satır üzerinde
    • bazı notlar bazı notlar NAME (UN973) 18/09/2015 11:52:24)
  • Yeni bir not. (KULLANICI ADI (UN973) 18/09/2015 11:55:15)
    • Yeni bir not.
    • (KULLANICI ADI (UN973) 18/09/2015 11:55:15)


Regexr: http://regexr.com/3d79o

Sorunun i olduğuma inanıyorum Ancak, ifadenin son bölümüne gelindiğinde olabildiğince az olay eşleşmiyor, + kullanarak hiçbir başarı elde edemedim. Şebeke.

+2

Girdinin ne olduğunu ve beklenen çıktıyı net olarak gösteren gönderiyi güncellemenizi öneririm. – Saleem

+0

, biçimlendirilmiş biçim mi yoksa değişiyor mu? – rock321987

+1

sabit ise, o zaman https://regex101.com/r/cS2oH0/1 çalışmalıdır – rock321987

cevap

1

(biçim sabit ise) o regex aşağıdaki kullanacak

var re = /([^(]*)(\(.*?\(?.*?\).*?\))/g; 
var str = 'Some notes(SOME USER (SU950) 16/09/2015 16:56:38)Some other notes(ANOTHER > USER (AU951) 16/09/2015 16:56:38)\n\nExample Notes Type:OUTBOUND CALL BACK (USER NAME (UN973) 18/09/2015 11:49:10)\n\nsome notes on multiple lines\n\nsecond line of notes (USER NAME (UN973) 18/09/2015 11:52:24)\n\nA new note. (USER NAME (UN973) 18/09/2015 11:55:15)'; 
var m; 

while ((m = re.exec(str)) !== null) { 
    if (m.index === re.lastIndex) { 
     re.lastIndex++; 
    } 
    print(m[0]); 
    print(m[1]); 
    print(m[2]); 
} 

Ideone Demo

([^(]*)(\(.*?\(?.*?\).*?\)) 

Regex Demo

JavaScript kodu yapmanın basit bir yolu