将//注释更改为/* */的正则表达式

问题描述 投票:0回答:1

如果我使用嵌入式 C# 运行以下 powershell,它就可以工作

$Source = @"
public class BasicTest
{
    // Multiply two numbers
    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}
"@

Add-Type -TypeDefinition $Source
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)

如果我将 C# 位放入文件 BasicTest.cs 并使用 get-content,则会失败

public class BasicTest
{
    // Multiply two numbers
    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}

powershell代码

$Source = Get-Content -Path ".\BasicTest.cs"
Add-Type -TypeDefinition "$Source"
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)

有一条以

开头的大错误消息
Add-Type : c:\Users\xwb\AppData\Local\Temp\1bpg0e0c.0.cs(1) : } expected

这是因为整个文件被读取为 1 行,并且 // 注释掉了文件的其余部分。 如果我将 // 注释更改为 /* */

public class BasicTest
{
    /* Multiply two numbers */
    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}

代码有效,我得到结果 10。

问题是,在 Visual Studio 或 VS Code 或 Notepad++ 中,如何将所有 // 注释替换为 /* */。 我可以找到评论

//.*

我应该在替换钻头中放入什么? 我试过没成功

/*.**/
/*{.*}*/
c# powershell visual-studio visual-studio-code notepad++
1个回答
0
投票

此匹配正则表达式为

^([^/{2}]*)//(.*)
,替换正则表达式为
$1/*$2*/

这将删除两个连续
/
的第一次迭代,并封装
/*
*/
之间的线,从上述第一个
//

的位置开始

示例: https://regex101.com/r/wJCdPt/1

© www.soinside.com 2019 - 2024. All rights reserved.