Regex 如何替换记事本中的特定图案++/visual studio
我正在使用VisualStudio。在SCSS代码的整个应用过程中,我通过一个函数将所有Regex 如何替换记事本中的特定图案++/visual studio,regex,visual-studio,Regex,Visual Studio,我正在使用VisualStudio。在SCSS代码的整个应用过程中,我通过一个函数将所有px转换为rem单元 例如: 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); .conte
px
转换为rem
单元
例如:
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;
}
}
请让我知道如何使用记事本++或Visual Studio中的“查找和替换”工具实现此目的
rem\(.*?)
-->此正则表达式标识模式。
我试图使用同一个捕获的组,并以这种方式替换它
\(.*)px
,但没有成功。如果只想匹配没有十进制值的数字,可以使用捕获组将数字保留在括号之间:
\brem\((\d+)\)
并替换为:
$1px
如果还希望匹配小数,可以使用:
\brem\((\d+(?:\.\d+)?|\.\d+)\)
单词边界和匹配\brem
rem
匹配\(
字符(
捕获组(
匹配1+个数字,后跟匹配点和数字的可选部分\d+(?:\。\d+)
或|
匹配一个点和1+个数字\。\d+
关闭捕获组)
匹配\)
char)
rem\((\d+)\)
取而代之的是,
$1px
如果rem
匹配literalrem
和\(
匹配literal(
然后(\d+)
捕获一个或多个数字并在组1中捕获,将在使用相同数字替换匹配的文本时使用该数字,最后\)
匹配一个literal)
在替换文本中,$1
表示在group1中捕获的文本,因此用数字和px
替换匹配的文本
格式和次要措辞编辑$1px正是我想要的。非常感谢。