[英]Regex Replace c#
string formattedFormula = Regex.Replace("A1+A1", "(?!A1\\d+)[A1]" , "{" + 0 + "}");
我需要 {0}+{0} 的结果。 但是此代码替换为 {0}{0}+{0}{0}
这只是一个例子。
using System;
using System.Text.RegularExpressions;
public class HelloWorld
{
public static void Main(string[] args)
{
string formattedFormula = Regex.Replace("A1+A1", "(?!A1\\d+)[A1]" , "{" + 0 + "}");
Console.WriteLine (formattedFormula);
}
}
我的真实代码是
foreach (string columnCode in parameters)
{
string pattern = string.Empty;
if (!Common.Common.IsNumaric(columnCode))
{
pattern = "(?!" + columnCode + "\\d+)[" + columnCode + "]";
stringList.Add(columnCode);
incrementor++;
formattedFormula = Regex.Replace(formattedFormula, pattern, "{" + incrementor.ToString() + "}");
}
else
{
continue;
}
}
您可以使用
pattern = $@"\b(?!{columnCode}\d){columnCode}\b";
查看生成的正则表达式演示。 它匹配
\b
- 单词边界(?!A1\d)
- 如果有A1
+ 一个数字,则匹配失败A1
- 固定文本\b
- 单词边界。这种模式适用于我的场景。
pattern = "(?:\\d+["+ columnCode + "]|["+ columnCode + "]+\\d)["+ columnCode + "\\d]*";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.