2015-06-19 30 views
2

我在尋找一個巨大的以.json文件,並試圖替換文本。這是我正在處理的確切情況。與string.replace()搜索字符串+任何字符+串

string json = (a json file string of text) 
string result = null; 
result = json.Replace("\"$id\":\"7\",\"QuestionNumber", "REPLACMENT TEXT"); 

我想搜索整個json文件並用REPLACMENT TEXT替換每個發生的東西。然而,我想搜索整個文件

"\"$id\":\"7\",\"QuestionNumber" 

其中,而不是隻是數字「7」,它可以是任何數字。我知道我需要使用正則表達式,但我是新的正則表達式,我不知道我會如何去傳遞正則表達式的東西到字符串。更換參數。

也在這裏一個主要的警告,是我還需要加「7」,但無論出現這種情況是每更換,到「替換文本」串號。

+1

使用正則表達式,有一種方法Regex.Replace:https://msdn.microsoft.com/de -de /庫/ system.text.regularexpressions.regex.replace(v = vs.110).ASPX – Console

+0

代替可以使用'7號( - 。?? \ d * \ \ d *)'< - 此應該得到任何數字甚至小數和負數。對於只有整數只需用'\ d *' 這裏是[正則表達式]一個很好的參考(https://msdn.microsoft.com/en-us/library/az24scfc(V = vs.110)的.aspx) – shockawave123

+0

這個json的結構是什麼......也許引入一個C#對象並使用LINQ會更容易,更快。 – PilotBob

回答

2

使用Regex.Replace()

//using System.Text.RegularExpressions; 
Regex regex = new Regex("\"\\$id\":\"(\\d+)\",\"QuestionNumber"); 
string result = regex.Replace(json, "REPLACEMENT TEXT $1"); 

這應該打開文本如

"$id":"8","QuestionNumber 
"$id":"3","QuestionNumber 

REPLACEMENT TEXT 8 
REPLACEMENT TEXT 3 
+0

謝謝你的幫助。我認爲這正是我正在尋找的內容,但是我在(\ d)的'd'中遇到了無法識別的轉義序列錯誤。我試圖把(\\ D),而是我不認爲這工作.. – kdeez

+1

哦,是啊,哎呀...應該是'\\ D'。這應該工作。再試一次。 – Jashaszun

+0

仍然不能正常工作,但我會繼續瞎搞。謝謝您的幫助。可以肯定的是,(\\ d +)應該是傳入正則表達式對象的字符串的一部分,對嗎? – kdeez