C# 如何在C中模拟PHP preg_替换?

C# 如何在C中模拟PHP preg_替换?,c#,C#,我正在将代码从PHP转换为C,需要转换此代码: $str = preg_replace('/[っッ](.)/u', '${1}${1}', $str); 有没有像preg_replace这样的C语言我可以使用 使用。正则表达式语法有细微的区别,但主要是复制/粘贴 例如,以下PHP内容: $str = 'April 15, 2003'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = '${1}'; echo preg_replace($p

我正在将代码从PHP转换为C,需要转换此代码:

 $str = preg_replace('/[っッ](.)/u', '${1}${1}', $str);
有没有像preg_replace这样的C语言我可以使用

使用。正则表达式语法有细微的区别,但主要是复制/粘贴

例如,以下PHP内容:

$str = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}';
echo preg_replace($pattern, $replacement, $str);
可以用C语言完成,如:

var str = "April 15, 2003";
var pattern = "^(\w+) (\d+), (\d+)$";
var replacement = "$1";
Console.WriteLine(System.Text.RegularExpressions.Regex.Replace(str, pattern, replacement, System.Text.RegularExpressions.Regex.RegexOptions.IgnoreCase);

您可以编写如下函数:

    public static string PregReplace(string pattern, string newValue, string src)
    {
        Regex rg = new Regex(pattern);
        MatchCollection mc = rg.Matches(src);
        foreach (var match in mc)
        {
            src = src.Replace(match.ToString(), newValue);
        }
        return src;
    }
你可以试试

string input = "your str value" ;
string pattern = "[っッ](.)";
string replacement = "$1$1";
string result = Regex.Replace(input, pattern, replacement);

你可能想看看Regex.Replace in.net你有没有研究过如何做到这一点?你试过什么吗?你在重新发明轮子。Replace可以通过迭代MatchCollections来实现这一点。PHP和C是截然不同的语言。请不要试图强迫其中一方表现得像另一方。如果你逐字翻译自然语言,母语人士会觉得你很奇怪。这同样适用于编程lamguages@dotNET,@Suppen问题是如何在C中模拟PHP preg_替换?我编写函数来模拟它。@S.Petrosov:对于任何给定的问题,都有无数种方法可以实现正确的输出。一个好的程序员会尝试编写小的/可读的代码,并利用基本库中可用的功能。这并不是说如何访问Regex类