2015-06-25 15 views
5

Bir dosyadan bir dizi anlamlı değer almam gerekiyor. (?)Düzenlenmeyen içeriğin karşısındaki regex ifadesini durdurma

"indicator\..+?"\[true\] 

Maalesef gerçek maçı ve tembel niceleyici almak için bu içeriğin yeraldığını geneline yayılan yerlerde olduğu gibi olmak değildir: gibi eşleşmesi gerekir değerler için temel desen arar İstediğim gibi tembel.

Yukarıdaki böylece aşağıdaki dışarı değiştirmek nasıl:

"Burada indicator.value" [yanlış], "öteki içerik", "daha başka içerik", "göstergesi yapamaz tam durak "[gerçek]," indicator.this ben eşleşti istiyorum değerdir eksik olduğundan bu bir maç "[gerçek]

sadece bu değer döndürülür:" indicator.this istediğim değerdir eşleşti "[true]

Curre ntly, tüm dize yukarıdaki regex tarafından iade ediliyor.

+0

Teşekkürler John Saunders, gelecekte bu önlemek olacaktır. – MidnightThoughtful

cevap

0

Bunun yerine "indicator\.(.*)?"\[true\] kullanmayı deneyin ve yardımcı olup olmadığını görün. Tembelliğin sadece * operatörüne uygulandığını düşünüyorum. Bu konuyu yıllar önce hatırlıyorum.

+0

Doğru olsa bile, bir '.' eksiksiniz. – soandos

1

varsayarsak virgül sınırlayıcı - basitçe onlara uyan kaçının:

@"""indicator\.[^,]+?""\[true\]" 
0

Sen İstemediğiniz deseni atarak atma tekniğini yararlanabilir. Yani, böyle bir şey olabilir:

"indicator\..+?"\[false\]|"indicator\.(.+?)"\[true\] 
Discard this pattern --^ Capture this --^ 

Working demo

Maç bilgisini

MATCH 1 
1. [150-182] `this is the value I want matched`