我需要以下情況幫助:正則表達式替換回
private string _endPointPattern = @"X(?<name>[a-zA-Z0-9-:]*)X";
現在,如果我想獲得組,我只是得到它:
match.Groups["name"]
現在讓我們假設恢復情況:
我想將字符串「Jerry」插入到命名參數中以獲得XJerryX。 如何用Regex做到這一點?
我需要以下情況幫助:正則表達式替換回
private string _endPointPattern = @"X(?<name>[a-zA-Z0-9-:]*)X";
現在,如果我想獲得組,我只是得到它:
match.Groups["name"]
現在讓我們假設恢復情況:
我想將字符串「Jerry」插入到命名參數中以獲得XJerryX。 如何用Regex做到這一點?
假設X
是一些正則表達式模式(否則,簡單地使用String.Replace
)的佔位符,這應該工作:
var yourInputString = "XX";
var replacement = "Jerry";
Regex.Replace(yourInputString,
@"(X)(X)",
String.Format(@"$1{0}$2", replacement));
編輯:後您的評論(您可能需要更新的問題):
你需要更新你的正則表達式,像這樣:
private string _endPointPattern =
@"(?<prefix>X)(?<name>[a-zA-Z0-9-:]*)(?<suffix>X)";
然後用:
var yourInputString = "XX";
var replacement = "Jerry";
var result = Regex.Replace(yourInputString,
_endPointPattern,
String.Format(@"${{prefix}}{0}${{suffix}}", replacement));
不是很清楚的問題,但下面的代碼適用於多個案例:XX => XJerryX
,XBobbyX => XJerryX
。但是XXavierX => XJerryXJerryX
。
string output = Regex.Replace(text, "(?<=X).*?(?=X)", "Jerry");
decPL您的答案是最接近我需要的解決方案。不過,我已經做了簡單的方法:
private const string EndPointFormat = @"X{0}X";
private const string Regex = @"(?<name>[a-zA-Z0-9-:]*)";
private string _endPointPattern = string.Format(EndPointFormat, Regex);
string endPoint = string.Format(EndPointFormat, "Jerry");
現在我可以用_endPointPattern採取從正則表達式的名稱和插入回用字符串格式。
您能否澄清並舉例說明您想要實現的目標? – Szymon
我想插入文字:Jerry進入_endPointPattern,進入組所以結果會是XJerryX –
MistyK