簡體   English   中英

正則表達式用於刪除帶有嵌套花括號的花括號

[英]regex for removing curly brackets with nested curly brackets

這是我的字符串: "This Is {{ dsfdf {{dsfsd}} ewrwrewr }} My Result"

我想刪除外部花括號及其內容。 結果應該是"This Is My Result"

這是我目前最好的鏡頭:

Text = Regex.Replace(Text, "{{([^}]*)}}", String.Empty);

但效果不佳。 我收到"This Is ewrwrewr }} My Text"

也許應該用余額匹配解決...

我會感激,如果有人可以幫助我解決這個問題,因為雖然多次嘗試我不能做我自己。

一種簡單但緩慢的方法是多次應用正則表達式,直到沒有更多更改為止:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {
        string s = "This Is {{ dsfdf {{dsfsd}} ewrwrewr }} My Result";

        Regex regex = new Regex("{{({?}?[^{}])*}}");
        int length;
        do
        {
            length = s.Length;
            s = regex.Replace(s, "");
        } while (s.Length != length);

        Console.WriteLine(s);
     }
}

你有什么想法:

string test = "This Is {{ dsfdf {{dsfsd}} \n jkhhjk ewrwrewr }} My Result";
Console.WriteLine(Regex.Replace(test, "{{.*}}", String.Empty, RegexOptions.Singleline));

沒有“ Regex”的版本:

string test = "This Is {{ dsfdf {{dsfsd}} \n jkhhjk ewrwrewr }} My Result";
int startIndex = test.IndexOf("{");
int length = test.LastIndexOf("}") - startIndex + 1;
Console.WriteLine(test.Replace(test.Substring(startIndex, length), String.Empty));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM