【问题标题】:Notepad++ How to replace everything in between certain linesNotepad ++如何替换某些行之间的所有内容
【发布时间】:2013-07-24 09:37:54
【问题描述】:

所以我有这样的代码

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}
}

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

【问题讨论】:

    标签: regex replace find notepad++


    【解决方案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 及更低版本中使用正则表达式存在已知问题。

    【讨论】:

    • 谢谢,这正是我所需要的。
    【解决方案2】:

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

    \{\s*\}$
    

    替换为:

    {\nwhatever you want\n}\n
    

    正则匹配说明:

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

    【讨论】:

    • 我试过了,它只替换了那些空白的,我如何包含那些写在大括号内的代码。
    • @user2201461:您需要准确指定这些花括号之间可能遇到的内容。
    猜你喜欢
    • 2022-06-17
    • 2020-07-29
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多