小编Its*_*uni的帖子

正则表达式:匹配表达式中最近的开始和结束花括号内的所有内容

这有点难以解释我真正想要的东西(更好的标题建议得到赞赏,以便人们可以在将来轻松找到它).

假设我有这个:

{
    {
        $myTagThing$
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要匹配

{
    $myTagThing$
} 
Run Code Online (Sandbox Code Playgroud)

即匹配一切从过去{之前$myTagThing$,直到第一个}之后$myTagThing$.

所以我认为我需要这个\{.*\$myTagThing\$.*\},但它也会匹配字符串中的第一个{和最后一个}(即整个例子).然后我尝试使用前瞻和后视(均为负面)\{(.*(?!\{))\$myTagThing\$.*(?<!\})\}(https://regex101.com/r/RfdHUH/1/).但这仍然行不通.

我的理论是,我可能正在使用前瞻和错误的方式,因为这是我第一次使用它们.

有任何想法吗?

编辑:标志是\gms.

.net c# regex

6
推荐指数
2
解决办法
233
查看次数

迁移到LFS后,存储库仍然很大

我正在使用虚幻引擎4,它将所有资产文件序列化为二进制文件.目前,项目大小小于10MB,但.git文件夹几乎是700MB.我有LFS跟踪所有资产文件并lfs migrate在回购中做了一个,但回购仍然很大.GitHub说文件在LFS中,但在推送重写的历史记录后我没有看到我的LFS存储使用率表上升.

我不确定这是否是LFS的工作方式,但据我所知,Git将在LFS中存储指向该文件的指针,并且只从HEAD所在的提交中下载该文件的版本.

我在这里很丢失.我认为值得一提的是我在git中是一个新手,所以请放轻松我.

提前致谢.

编辑: 我运行git lfs install --skip-smudge然后克隆了repo,这使得repo文件夹变得更小,因为克隆时没有下载LFS文件.问题是,现在我只有指针文件,并且git lfs pull无法检出所有文件.错误信息是Could not check out "<file-name>".

git git-lfs

6
推荐指数
1
解决办法
311
查看次数

钩子在没有委托的情况下运行(反射)

有没有一种方法可以使用反射将一个函数连接到另一个函数而不使用委托?

class A
{
    void Foo()
    {
    }
}

class B
{
    void Main()
    {
        A a = new A();
        a.GetType().GetMethod("Foo").AddHook(a, Func); //I want something like this
        a.Foo();
        //Func gets called
    }

    void Func()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法FuncFoo不使用事件、委托或仅从Func内部调用的情况下调用之后调用Foo

我需要这个来更新我游戏的 UI 控制器。

我看到大多数人处理这个问题的方式是将一堆事件添加到 A 并将 B 订阅到这些事件。像这样

class A
{
?    public delegate void UICallback();
?    public event UICallback onFoo;
    void Foo()
    {
    ?    onFoo.Invoke();
    }
}

class B
{
    void Main()
    { …
Run Code Online (Sandbox Code Playgroud)

c# reflection unity-game-engine

5
推荐指数
0
解决办法
624
查看次数

标签 统计

c# ×2

.net ×1

git ×1

git-lfs ×1

reflection ×1

regex ×1

unity-game-engine ×1