繁体   English   中英

Notepad ++如何替换某些行之间的所有内容

[英]Notepad++ How to replace everything in between certain lines

所以我有这样的代码

TitleManager:AddSubTitleMissionInfo_LUA({
  m_iID = 10,
  m_wstrDescription = "Professional Killer",
  m_eClearType = TITLE_MISSION_CLEAR_TYPE.TMCT_MOB_KILL_COUNT,
  m_bAutomaticDescription = True,
  m_ClearCondition = {
    m_eMobID = {68},
    m_iMobKillCount = {1}
  }
})
TitleManager:AddSubTitleMissionInfo_LUA({
  m_iID = 20,
  m_wstrDescription = "Sneaky Assassin",
  m_eClearType = TITLE_MISSION_CLEAR_TYPE.TMCT_MOB_KILL_COUNT,
  m_bAutomaticDescription = True,
  m_ClearCondition = {
    m_eMobID = {69},
    m_iMobKillCount = {1}
  }
})
TitleManager:AddSubTitleMissionInfo_LUA({
  m_iID = 20,
  m_wstrDescription = "Merciless Thug",
  m_eClearType = TITLE_MISSION_CLEAR_TYPE.TMCT_MOB_KILL_COUNT,
  m_bAutomaticDescription = True,
  m_ClearCondition = {
    m_eMobID = {70,71},
    m_iMobKillCount = {1,1}
  }
})

大概有一百个,各不相同。 如何替换大括号之间的所有内容。

m_ClearCondition = {

}

m_ClearCondition = {
m_eMobID = {50},
m_iMobKillCount = {1}
}

我真的希望有人能回答我的问题,我将非常感激。

描述

关于您的帖子中的示例文本,有一些不清楚的地方。 但是此表达式假定:

  • 每个m_clearcondition值将没有嵌套括号,深度超过一级。
  • 将找到每个键名称m_clearcondition并将其放入捕获组1
  • 右方括号将被归入第2组

正则表达式:

^(\s+m_ClearCondition\s*=\s*\{)(?:\{[^}]*\}|[^}])*(\})

用。。。来代替:

$1\n    m_eMobID = {50},\n    m_iMobKillCount = {1}\n  $2

例:

正则表达式的现场演示: http: //regexr.com? 35n0l

在此处输入图片说明

在此示例中,我使用的是Notepad ++ 6.4.2。 在记事本5版及更低版本中存在使用正则表达式的已知问题。

正则表达式是您的朋友。 Ctrl-H(查找/替换)并启用正则表达式(对话框左下方)。

\{\s*\}$

用。。。来代替:

{\nwhatever you want\n}\n

正则表达式匹配说明:

  • {}被保留,因此转义它们将匹配实际的大括号字符
  • \\ s当然会匹配所有空格(包括换行和制表符)
  • $将是行的结尾; 这只会帮助比赛
  • \\ n在替换中会在有意义的地方插入新行; 这些是可选的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM