Сложный файл - Удалить между "{{" и "}}" - PullRequest
0 голосов
/ 05 марта 2020

Я хотел бы удалить содержимое файла, указав c что-нибудь между "{{" и "}}". Пример приведен в конце моего письма в "shadows.ffx".

Я попытался использовать следующее:

            string RemoveBetween(string s, char begin, char end)
            {
                Regex regex = new Regex(string.Format("\\{0}.*?\\{1}", begin, end));
                return regex.Replace(s, string.Empty);
            }

Но это не работает со сложными вещами. Это работает только тогда, когда строка представляет собой однострочный текст.

И, конечно, строка выглядит так, когда читается программой: "\ r" + "\ n".

"DECLARATIONS shadow_map_sampling \ r \ n {{\ r \ n \ t # define ................"

Следующее также не очень хорошо работает, или Я просто недостаточно опытен, чтобы это произошло.

                int start = text.IndexOf("{{");
                int end = text.IndexOf("}}", start);

                text = text.Remove(start , end-start-3);

Есть идеи на этот счет?

shadows.ffx

FRAGMENT shadow_map_projection
    include shadow_map_generation
    in float4 iWorldPosition : world_position
    out float4 oProjectedPosition : POSITION
    out float4 oWorldPosition : TEXCOORD0
{{
    oWorldPosition = iWorldPosition;
    oProjectedPosition = mul( iWorldPosition, view_projection_transform );
}}

FRAGMENT shadow_map_output
    include shadow_map_generation
    inout SurfaceData surfaceData : surface_data
    out float4 colour : PIXEL_RETURN_SEMANTIC
{{
#ifndef VARIANCE_SHADOW_MAPPING
     colour = 0.0f; // we don't need color for hardware shadow maps, as we read it back from the depth buffer
#else
         //const float distance = length( shadow_map_view.xyz - surfaceData.world_pos.xyz );
         const float distance = surfaceData.world_pos.z;
         colour = float4( ComputeMoments( distance ), 0.0f, 0.0f );// / 1000.0f;
#endif
}}

FRAGMENT kill_on_alpha_test
    include basic_materials
    inout SurfaceData surfaceData : surface_data
#ifdef COLOR_OUTPUT_ENABLED
    in float4 mod : COLOR0
#endif
{{
    PerformAlphaTestClip(surfaceData.material.albedo_color.a);
}}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...