1

我正在使用以下正则表达式操作来查找文本的某些部分-

\/\*\*((\n \*.*)*)\/\n((.*\n))*?\{

然后用以下模式替换它

\/\*\*$1\/\n$3\{\nprintk("**$1");\n

我是使用正则表达式的新手,我想删除 $1 中包含的换行符,这可能吗?如果可以,怎么办?

- - 编辑 - -

例子:

/**
 *  This is a multiline commment1
 *  This is a multiline commment2
 *  This is a multiline commment3
 **/
int fnName(struct a *b)
{
    return 0;
}

电流输出为

/**
 *  This is a multiline commment1
 *  This is a multiline commment2
 *  This is a multiline commment3
 **/
int fnName(struct a *b)
{
printk("**
 *  This is a multiline commment1
 *  This is a multiline commment2
 *  This is a multiline commment3
 **");

    return 0;
}

虽然我想要输出为

/**
 *  This is a multiline commment1
 *  This is a multiline commment2
 *  This is a multiline commment3
 **/
int fnName(struct a *b)
{
printk("** *  This is a multiline commment1 *  This is a multiline commment2 *  This is a multiline commment3 **");
    return 0;
}
4

1 回答 1

0

抱歉,我认为正则表达式不能满足您的要求。您无法像您希望的那样一次性转换替换中的选定文本。

我建议使用 sublime texts 多重编辑功能来选择、转换然后将你需要的内容粘贴到你需要的地方。不像您要求的那样简单,而是一个解决方案。

例如:

  • 在所有评论块上进行多查找,然后复制它们
  • 然后将它们粘贴到一个新文件中进行转换并用 prinkk 包装
  • 然后多行复制回来并多行粘贴到所需位置
于 2014-12-05T12:10:14.503 回答