Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式从字符串中删除重复的文本模式_C#_Regex - Fatal编程技术网

C# 正则表达式从字符串中删除重复的文本模式

C# 正则表达式从字符串中删除重复的文本模式,c#,regex,C#,Regex,我正在尝试使用正则表达式删除重复的模式或文本。输入文本为: 规则集:[text],数据:[{text}{text}…]规则集:[text],数据:[{text},{text},…]SomeText规则集:[{text}…],数据:[{text}…] 其中,子字符串可以是任何字母数字单词,并且可以包含特殊字符以及空格。我正在尝试删除以下任何内容: 规则集:[文本], 数据:[{text}{text}…] 我想保留以下SomeText 我尝试了很多方法,但似乎没有达到预期的效果。Descript

我正在尝试使用正则表达式删除重复的模式或文本。输入文本为:

规则集:[text],数据:[{text}{text}…]规则集:[text],数据:[{text},{text},…]SomeText规则集:[{text}…],数据:[{text}…]

其中,子字符串可以是任何字母数字单词,并且可以包含特殊字符以及空格。我正在尝试删除以下任何内容:

  • 规则集:[文本],
  • 数据:[{text}{text}…]
我想保留以下
SomeText

我尝试了很多方法,但似乎没有达到预期的效果。

Description 替换为:

此正则表达式将执行以下操作:

  • 查找类似于
    规则集:[text]、
    数据:[{text}{text}…]的子字符串。
  • 允许您用任何内容替换这些内容,或者在本例中不替换任何内容
例子 现场演示

示例文本

规则集:[text],数据:[{text}{text}…]规则集:[text],数据:[{text},{text},…]SomeText规则集:[{text}…],数据:[{text}…]

更换后

一些文字

解释
你已经试过什么了?你说的“特殊角色”到底是什么意思?下面是stackoverflow问题的回答。准备好测试模式,只需删除带有“(规则集\:[.])模式的任何内容。但是当它匹配结尾“]”时,它会删除所有内容。特殊字符是()|你能给出一个输入和预期输出的例子吗?谢谢@Ro-Yo-Mi,它确实对我有用,而且响应时间也更好。我使用“RuleSet\:[(\s*?*?*?*?]),\s | Data\:[(\s*?*?*?*?])得到了预期的结果。我不喜欢在使用括号、括号或引号等包装字符的值时使用
*?
断言,因为这会导致意外的结果。但如果它对你有用,那就太棒了。
\s?(?:RuleSet|Data):\[[^]]*](?:,?\s|$)
NODE                     EXPLANATION
----------------------------------------------------------------------
  \s?                      whitespace (\n, \r, \t, \f, and " ")
                           (optional (matching the most amount
                           possible))
----------------------------------------------------------------------
  (?:                      group, but do not capture:
----------------------------------------------------------------------
    RuleSet                  'RuleSet'
----------------------------------------------------------------------
   |                        OR
----------------------------------------------------------------------
    Data                     'Data'
----------------------------------------------------------------------
  )                        end of grouping
----------------------------------------------------------------------
  :                        ':'
----------------------------------------------------------------------
  \[                       '['
----------------------------------------------------------------------
  [^]]*                    any character except: ']' (0 or more times
                           (matching the most amount possible))
----------------------------------------------------------------------
  ]                        ']'
----------------------------------------------------------------------
  (?:                      group, but do not capture:
----------------------------------------------------------------------
    ,?                       ',' (optional (matching the most amount
                             possible))
----------------------------------------------------------------------
    \s                       whitespace (\n, \r, \t, \f, and " ")
----------------------------------------------------------------------
   |                        OR
----------------------------------------------------------------------
    $                        before an optional \n, and the end of a
                             "line"
----------------------------------------------------------------------
  )                        end of grouping
----------------------------------------------------------------------