我想知道如何用另一个字符替换,
数组括号内[]
的字符,比如.
. 我的字符串表达式如下:
属性["412324 - PENNDOT I-95", "Category"].Value, Attributes["412324 - PENNDOT I-95", "Category"].Code
预期的输出应该是:
属性[“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 做同样的事情,但它会更慢,如果输入字符串改变它的结构,它仍然会中断