簡體   English   中英

使用 C# 正則表達式替換字符串中的字符

[英]Replace a character inside a string using C# Regex

我想知道如何用另一個字符替換,數組括號[]內的字符,比如. . 我的字符串表達式如下:

屬性[“412324 - PENNDOT I-95”,“類別”]。值,屬性[“412324 - PENNDOT I-95”,“類別”]。代碼

預期的 output 應該是:

屬性[“412324 - PENNDOT I-95”。 “類別”]. 值,屬性 [“412324 - PENNDOT I-95”。 “類別”].代碼

var regex = new Regex(@"(?<=\[[^\[\]]*),(?=[^\[\]]*\])");
return regex.Replace(<your sample string>, ".");

在正則表達式模式中,在 的左側,是一個積極的后視零寬度斷言,這意味着必須有一個[ ,然后是零個或多個字符,這些字符既不是[也不是]導致逗號。

在逗號之后,一個積極的前瞻零寬度斷言,這意味着可以有零個或多個既不是[也不是]的字符,那么必須有一個關閉的]

零寬度斷言意味着模式必須在匹配文本之前或之后,但不是匹配的一部分。 因為我們只匹配,所以我們的替換只是.

如果它總是在這個 sheme 中,那么 String.Replace 會更快:

string sin = "Attributes["412324 - PENNDOT I-95", "Category"].Value, Attributes["412324 - PENNDOT I-95", "Category"].Code";
string sout = sin.Replace("\", \"","\". \"");

你可以用 RegEx 做同樣的事情,但它會更慢並且如果輸入字符串改變它的結構它仍然會中斷

暫無
暫無

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

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