3

我想知道如何用另一个字符替换,数组括号内[]的字符,比如.. 我的字符串表达式如下:

属性["412324 - PENNDOT I-95", "Category"].Value, Attributes["412324 - PENNDOT I-95", "Category"].Code

预期的输出应该是:

属性[“412324 - PENNDOT I-95”。“类别”].值,属性 [“412324 - PENNDOT I-95”。“类别”].代码

4

2 回答 2

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

在正则表达式模式中,左边,是一个积极的后向零宽度断言,这意味着必须有一个[,然后是零个或多个既不是逗号[也不]是逗号的字符。

在逗号之后,一个正向前瞻零宽度断言,这意味着可以有零个或多个字符既不是[也不是]必须有一个结束]

零宽度断言意味着模式必须在匹配的文本之前或之后,但不是匹配的一部分。由于我们只匹配,我们的替换只是.

于 2012-04-10T05:29:16.433 回答
0

如果它总是在这个 sheme 中,那么 String.Replace 会更快:

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

你可以用 RegEx 做同样的事情,但它会更慢,如果输入字符串改变它的结构,它仍然会中断

于 2012-04-10T05:29:02.253 回答