使用 C# 正则表达式替换字符串中的字符
本文关键字:字符 字符串 替换 正则表达式 使用 | 更新日期: 2023-09-27 18:30:38
我想知道如何将数组括号内,
字符替换为另一个字符[]
,比如.
.我拥有的字符串表达式如下:
属性["412324 - PENNDOT I-95", "类别"]。值,属性["412324 - PENNDOT I-95","类别"]。法典
预期输出应为:
属性["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("'", '"","'". '"");
你可以用正则表达式做同样的事情,但它会更慢,如果输入字符串改变它的结构,它仍然会中断