簡體   English   中英

正則表達式刪除和替換字符

[英]Regex to remove and replace characters

我有以下

<option value="Abercrombie">Abercrombie</option>

我的文件中有大約2000行,每行具有不同的位置,我試圖了解正則表達式,但是很遺憾,我學到的東西都不會進入,並且不確定是否可行。

我想做的是運行一個正則表達式,它將刪除上面的HTML,將保留以下內容

Abercrombie 

然后,我想在前面加上一個特定的數字,這樣的結果例如

2,Abercrombie 

這可能嗎?

不要使用正則表達式,因為HTML不是常規語言。 您可以使用Linq的XML解析器。 如果要處理整個文件,可以內聯替換元素:

int myNumber  = 2;
var html      = @"<html><body><option value=""Abercrombie"">Abercrombie</option><div><option value=""Forever21"">Forever21</option></div></body></html>";            
var doc       = XDocument.Load(new StringReader(html));

var options = doc.Descendants().Where(o => o.Name == "option").ToList();
foreach (var element in options)
{
    element.ReplaceWith(string.Format("{0},{1}", myNumber, element.Value));
}

var result = doc.ToString();

這給出:

<html>
    <body>2,Abercrombie<div>2,Forever21</div></body>
</html>

如果只想獲取特定標簽的文本,則可以使用以下命令:

int myNumber  = 2;
var html      = @"<option value=""Abercrombie"">Abercrombie</option>";            
var doc       = XDocument.Load(new StringReader(html));
var element   = doc.Descendants().FirstOrDefault(o => o.Name == "option");
var attribute = element.Attribute("value").Value;
var result    = string.Format("{0},{1}", myNumber, attribute);

//result == "2,Abercrombie"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM