有没有办法在Notepad ++中屏蔽某些括号?

问题描述

有什么方法可以删除括号中的所有内容?我想要一个记事本++脚本,可以执行以下操作。

[0] = {
            ["HumanoidRootPart"] = {
                ["Torso"] = {
                    CFrame = CFrame.new(0,1.324,-1.83) * CFrame.Angles(math.rad(-56.608),0),["Left Leg"] = {
                        CFrame = CFrame.Angles(math.rad(-6.589),math.rad(2.464),math.rad(-30.023)),},["Right Arm"] = {
                        CFrame = CFrame.Angles(0,math.rad(-64.229)),["Head"] = {
                        CFrame = CFrame.Angles(math.rad(6.131),["Left Arm"] = {
                        CFrame = CFrame.Angles(0,math.rad(53.572)),["Right Leg"] = {
                        CFrame = CFrame.Angles(math.rad(-5.73),math.rad(-2.063),math.rad(27.731)),[0.017] = {
            ["HumanoidRootPart"] = {
                ["Torso"] = {
                    CFrame = CFrame.new(0,

对此:

RunAnim(0)
RunAnim(0.017)

这对我真的很有帮助,我目前正在使用CFrame为我的游戏制作动画脚本。 基本上只是取数字并添加RunAnim。我通过了其中的一项,直到我意识到我应该去这里寻求帮助。 谢谢!

-reidlab

解决方法

另一种选择是仅在组1中捕获字符串开头方括号之间的数字,然后在替换中使用该组。

为防止不必要的回溯,您可以使用否定超前匹配来断言以下所有行,断言该字符串不是以方括号之间的数字部分开头。

查找内容:

^\h*\[(\d+(?:\.\d+)?)].*(?:\R(?!\h*\[\d+(?:\.\d+)?]).*)*

替换为:

RunAnim\($1\)

说明

  • ^字符串的开头
  • \h*匹配0+个水平空格字符
  • \[比赛开始[
    • (\d+(?:\.\d+)?)捕获第1组,用可选的小数部分匹配1个以上的数字
  • ]比赛结束]
  • .*匹配其余行
  • (?:非捕获组
    • \R匹配任何unicode换行符序列
    • (?!\h*\[\d+(?:\.\d+)?])为负向,断言该行的开头不是[]之间的数字
    • .*匹配整行
  • )*关闭组并重复0次以上以匹配所有行

Regex demo

enter image description here

,

您可以尝试以下查找和替换,并从NPP启用点所有模式:

Find:    \[(\d+(?:\.\d+)?)\].*?(?=\[\d+(?:\.\d+)?\]|$)
Replace: RunAnim($1)\n

Demo

以下是正则表达式的解释:

\[(\d+(?:\.\d+)?)\]      match e.g. [0.017] and capture in $1
.*?                      then match all content up to,but not including,(?=\[\d+(?:\.\d+)?\]|$)  the next number OR the end of the input

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...