2016-12-20 2 views
0

Wie ersetze ich nur einen Teil der Zeichenfolge in einem Ruby-Code?Ruby ersetzen nur einen Teil der passenden Zeichenfolge

Vermeintliche ich eine Textdatei, die mehrere Vorkommen des Stichwort „JVM_MEM_ARGS_64BIT“

JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m" 

und ich möchte nur enthält das erste Vorkommen ersetzen, kann ich das #sub statt gsub verwenden

a.sub('JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m"', 'JVM_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"') 

jedoch nicht alle Dateien enthält

JVM_MEM_ARGS_64BIT="-Xms512m -Xmx512m" 

einige cou ld be

JVM_MEM_ARGS_64BIT="-Xms256m -Xmx512m" 

Ich bin mir nicht sicher, wie man das in einem Ruby-Code macht? Ich kann nur für das Stichwort „JVM_MEM_ARGS_64BIT“ suchen, aber, wie ich die vorhandenen Wertzuweisung lösche und ersetzen sie durch JVM_MEM_ARGS_64BIT = "-. Xms512m -Xmx1024m

Newbie Ruby-Entwickler

+1

'sub (/ JVM_MEM_ARGS_64BIT = "- Xms \ d + m -Xmx \ d + m"/ ...)' – mudasobwa

+0

Sorry, können Sie mir einen Code geben Schnipsel, dass ich versuchen könnte? Ich bin aber noch nicht mit der Ruby-Codierung vertraut.Danke –

+0

Ich dachte, ich gab es: 'A (/ JVM_MEM_ARGS_64BIT =" - Xms \ d + m - Xmx \ d + m "/, 'JVM_MEM _ARGS_64BIT = "- Xms512m -Xmx1024m" ') '. – mudasobwa

Antwort

1

String#sub einen regulären Ausdruck als erstes akzeptiert param:

replacement = 'JVM_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"' 
a.sub(/JVM_MEM_ARGS_64BIT="-Xms\d+m -Xmx\d+m"/, replacement) 
Verwandte Themen