regex - 如何替换 Notepad++ /Visual Studio中的特定模式

标签 regex visual-studio

我正在使用 Visual Studio。在 SCSS 代码中的整个应用程序中,我正在转换所有 pxrem通过函数来​​计算单位。

例如:

padding: 16px 32px 48px --> padding: rem(16) rem(32) rem(48)其计算结果为 padding: 1rem 2rem 3rem .

现在由于某种原因我需要转换所有 rem单位返回px单位。 为此,我想识别模式 rem(xyz)并将其替换为 xyz px .

示例:

.wrapper{
    font-size: rem(40);
    .content{
        padding: rem(20) rem(10) rem(30);
    }
}

.wrapper{
    font-size: 40px;
    .content{
        padding: 20px 10px 30px;
    }
}

请告诉我如何使用 Notepad++ 或 Visual Studio 中的查找和替换工具实现此目的。

rem\((.*?)\) --> 该正则表达式标识模式。 我试图使用相同的捕获组并以这种方式替换它 \((.*?)\)px ,但没有成功。

最佳答案

只要找到,

rem\((\d+)\)

并替换为,

$1px

其中 rem 匹配文字 rem\( 匹配文字 ( 然后 (\d+) 捕获一个或多个数字并在 group1 中捕获,在用相同的数字替换匹配的文本时将使用该数字,最后 \) 匹配文字 )

在替换文本中,$1 表示在 group1 中捕获的文本,因此将匹配的文本替换为您想要的数字和 px

<强> Regex Demo

关于regex - 如何替换 Notepad++ /Visual Studio中的特定模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55732276/

相关文章:

c# - Xamarin Forms,在 Visual Studio 上删除 WinPhone 目标平台

c++ - 如何只使用一个 boost 库/文件?

visual-studio - Visual Studio无法从现有代码中看到新项目

c++ - C++ 计时的逻辑错误(使用 std::chrono)

c#:删除一定大小的括号(如果存在,包括其内容)

c++ - C 标记化字符串

Java Scanner 用空行分割记录

visual-studio - 调用 COM 组件时返回了错误 HRESULT E_FAIL

php - 如何搜索不在任何html标签中的url,然后将其转换为超链接?

javascript - 地址的正则表达式