[英]Regex to replace between starting curly bracket { and colon :
我想在大括號和冒號之間替換字符串的一部分。 假設我有一個像這樣的字符串:
{Name: {\\"before\\":'Aj', \\"after\\":'Ajay'} },
因此,現在我想將字符串{Name:
的部分替換為{"Name":
我嘗試做Regex.Replace(rectifyAfter, @"/{([^\\s].+?)(\\s|$):", "{\\"$1\\":")
。 但這並不能替代。
有人可以幫我嗎?
以下正則表達式可以解決問題:
(?:\{)(?<Property>[a-z0-9]+)(?:\:)
它能做什么:
(?:\\{)
-匹配但不捕獲左花括號
(?<Property>[a-z0-9]+)
-在名為Property
的捕獲組中捕獲屬性的名稱
(?:\\:)
-再次匹配但不捕獲屬性后的:
因此,基本上,您想要做的就是匹配模式{Name:
但是將其替換為{"
+ Property
group + :
值 。
下面是執行替換的代碼:
string pattern = @"(?:\{)(?<Property>[a-z0-9]+)(?:\:)";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
string targetString = @"{Name: {\""before\"":'Aj', \""after\"":'Ajay'} },";
string replacement = @"{""${Property}"":";
return regex.Replace(targetString, replacement);
${Property}
是捕獲組的名稱,它將保存您的財產的名稱。
我不明白為什么您需要為此使用正則表達式。 只需使用簡單的.Replace
string json = "" //Whatever your JSON string is.
json = json.Replace("{Name:", "{\"Name\":");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.