2016-07-31 14 views
7

Dưới đây là các mã:số Thay bối rối

string myVar = "00000"; 
string myPtrn = "(.).(...)"; 
string mySub = "$1" + "1" + "$2"; 
string myResult = Regex.Replace(myVar, myPtrn, mySub); 
MessageBox.Show("Before :\t" + myVar + "\nAfter :\t" + myResult); 

Kết quả là $11000.

Tôi muốn có 01000 từ 00000.

Nhưng, tôi đoán, $1 bị nhầm lẫn với $11.

Trả lời

6

Bạn có thể đặt chụp số nhóm bên {} để tránh bất kỳ sự nhầm lẫn cho động cơ regex như

string mySub = "${1}" + "1" + "$2"; 

Ideone Demo

Như đã đề cập trong các ý kiến, bạn cũng có thể sử dụng

string mySub = "${1}1$2"; 
+1

mà sẽ giống như 'string mySub =" $ {1} 1 $ 2 ";' – Mariano

+0

@Mariano tôi tin rằng, OP có thể làm điều đó – rock321987

+1

Có lẽ vậy, nhưng điều đáng nói đến khi tôi tin rằng OP cũng đã nhầm lẫn khi nghĩ rằng "$ 1" + "1" + "$ 2" 'sẽ ngăn nó giải thích nó là' $ 11', và không có điểm nào trong việc tách chúng trong mã số – Mariano

Các vấn đề liên quan