Regex-在组后追加,将内容保持在组与组之间

Regex-在组后追加,将内容保持在组与组之间,regex,regex-group,Regex,Regex Group,在我自己的编译器中,我需要一些关于特殊情况的帮助 我们的想法是转向 @media screen and (min-width:1280px) { @media screen and (min-width:1088px) and (max-width:1279px) { 进入 (在带支架的开口后附加#测试id) 我可以看到地上的两个赌注是“@media”和“{”。 考虑到这一点,有什么可能的正则表达式解决方案可以将代码保存在“@media”(…)“{”中并附加一个“#test id” 匹配和替换

在我自己的编译器中,我需要一些关于特殊情况的帮助

我们的想法是转向

@media screen and (min-width:1280px) {
@media screen and (min-width:1088px) and (max-width:1279px) {
进入

(在带支架的开口后附加#测试id)

我可以看到地上的两个赌注是“@media”和“{”。 考虑到这一点,有什么可能的正则表达式解决方案可以将代码保存在“@media”(…)“{”中并附加一个“#test id”

匹配和替换的原始正则表达式将有所帮助


干杯!

您可以使用以下表达式:

(^@media[^{]+{)
  • 捕获组
  • ^
    断言行的起始位置
  • @media
    匹配文字子字符串
  • [^{]+
    匹配除
    {
    以外的任何内容
  • {
    匹配一个
    {
  • 关闭捕获组
替换为:

\1 #test-id

您可以尝试使用regex live。

不确定要将regex合并到哪种语言中,但类似的东西在Python中可以使用:
re.sub(r“(.+?\{)”,r“\1测试id”,您的\u字符串)
。示例:谢谢!这很有效。有些语言,如Erlang,需要一个“&”,而不是一个“\1”。这给了我所需要的想法。不客气。是的,在某些语言中,您也可以使用
$1
@JonRiel实际上,
&
通常表示“替换为整个匹配”,因此它与替换为捕获组的内容并不完全相同。从Erlang re文档中也可以看到:替换字符串可以包含特殊字符&,它将在result@JonRiel你可以找到更多的信息。
\1 #test-id