问题描述
有什么方法可以删除括号中的所有内容?我想要一个记事本++脚本,可以执行以下操作。
[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次以上以匹配所有行
您可以尝试以下查找和替换,并从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