我試圖通過使用它來編輯我有的腳本學習正則表達式。正則表達式 - 刪除文本,而用c替換文本#
我的腳本包含像這樣
<person name="John">Will be out of town</person><person name="Julie">Will be in town.</person>
我需要在腳本中替換名稱值 - 的除了名字總是相同的,但我可能有,我不希望更新的名稱。的我有什麼
簡單的例子:
string[] names = new string[1];
names[0] = "John-Example";
names[1] = "Paul-Example";
string ToFix = "<person name=\"John\">Will be out of town</person><person name=\"Julie\">Will be in town.</person>"
for (int i=0; i<names.Length; i++)
{
string Name = names[i];
ToFix = Regex.Replace(ToFix, "(<.*name=\")(" + Name.Replace("-Example", "") + ".*)(\".*>)", "$1" + Name + "$3", RegexOptions.IgnoreCase);
}
這適用於大多數情況,但我有兩個問題吧。有時它會刪除太多了,如果我有多人在字符串中,它會刪除所有的第一人,並在最後一個人之間,像這樣:
Hello <person name="John">This is John</person><person name="Paul">This is Paul</person>
成爲
Hello <person name="John-Example">This is Paul</person>
另外,我想要刪除後面的名稱值和收盤前carrat任何額外的文字,使:
<person name="John" hello>
應更正爲:
<person name="John-Example">
我讀過幾篇關於正則表達式的文章,覺得我只是在這裏錯過了一些小東西。我如何以及爲什麼要解決這個問題?
編輯:我不認爲這些腳本,我正在與分類爲XML - 整個腳本可能會或可能不會有<>標記。回到我的這個問題的原始目標,有人可以解釋正則表達式的行爲嗎?如何在結束標記之前的名稱值後刪除多餘的文本?
它xml..you應該使用XML解析器.. ** **不是正則表達式 – Anirudha