我想知道如何将数组括号,
中的[]
个字符替换为另一个字符,例如.
。我的字符串表达式如下:
属性[“412324 - PENNDOT I-95”,“类别”]。值,属性[“412324 - PENNDOT I-95”,“类别”]。代码
预期输出应为:
属性[“412324 - PENNDOT I-95”。 “类别”]。值,属性[“412324 - PENNDOT I-95”。 “类别”。代码
答案 0 :(得分:4)
var regex = new Regex(@"(?<=\[[^\[\]]*),(?=[^\[\]]*\])");
return regex.Replace(<your sample string>, ".");
在正则表达式模式中,,
的左侧是一个正向后观零宽度断言,这意味着必须有[
,然后是零个或多个不是{{1}的字符} [
导致逗号。
在逗号之后,一个积极的前瞻性零宽度断言,意味着可能有零个或多个字符既不是]
也不是[
,那么必须有一个结束]
。< / p>
零宽度断言意味着模式必须位于匹配文本之前或之后,但不是匹配的一部分。由于我们仅匹配]
,因此我们的替换只是,
答案 1 :(得分:0)
如果它始终处于这个模糊中,那么更快就是String.Replace:
string sin = "Attributes["412324 - PENNDOT I-95", "Category"].Value, Attributes["412324 - PENNDOT I-95", "Category"].Code";
string sout = sin.Replace("\", \"","\". \"");
你可以用RegEx做同样的事情,但它会慢一点,如果输入字符串改变它的结构它仍会破坏