使用 C# 正则表达式替换字符串中的字符

本文关键字:字符 字符串 替换 正则表达式 使用 | 更新日期: 2023-09-27 18:30:38

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

属性["412324 - PENNDOT I-95", "类别"]。值,属性["412324 - PENNDOT I-95","类别"]。法典

预期输出应为:

属性["412324 - PENNDOT I-95"。"类别"]。值,属性["412324 - PENNDOT I-95"。"类别"]。法典

使用 C# 正则表达式替换字符串中的字符

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("'", '"","'". '"");

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