Regex 删除XAML字符串中的多个内容

Regex 删除XAML字符串中的多个内容,regex,windows-8,richtextblock,Regex,Windows 8,Richtextblock,嗨,我有一个xaml字符串,如下所示: <InlineUIContainer> <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri"> <Span> <InlineUIContainer> <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someur

嗨,我有一个xaml字符串,如下所示:

<InlineUIContainer>
  <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">
    <Span>
      <InlineUIContainer>
        <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
      </InlineUIContainer>
    </Span>
    some undesirable text!
  </HyperlinkButton>
</InlineUIContainer>

一些文本
一些不受欢迎的文字!
我需要将这个xaml转换为RichTextBlock内容,但我无法控制字符串的生成,我只接收字符串,因此正如您在片段中看到的,我需要删除不需要的文本,因为HyperLinkButton不能有两个内容

所以我需要两件事中的一件:

  • 删除不必要的outter Hyperlink按钮或
  • 删除示例中不需要的文本
  • 有人能帮我用正则表达式或者别的什么来实现这一点吗


    谢谢

    虽然可能不是最好的解决方案,但正则表达式很容易被许多边缘情况绊倒。此表达式将查找不需要的文本并替换它

    正则表达式:
    ([\s\r\n]*)(^.*[\r\n]*)(?=\s*[\s\r\n]*)

    替换为:
    $1

    实例 现场工作示例:

    示例文本

    <InlineUIContainer>
      <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">
        <Span>
          <InlineUIContainer>
            <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
          </InlineUIContainer>
        </Span>
        some undesirable text!
        with multiple 
        lines
      </HyperlinkButton>
    </InlineUIContainer>
    
    <InlineUIContainer>
      <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">
        <Span>
          <InlineUIContainer>
            <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
          </InlineUIContainer>
        </Span>
      </HyperlinkButton>
    </InlineUIContainer>
    
    
    一些文本
    一些不受欢迎的文字!
    多次
    线
    
    更换后

    <InlineUIContainer>
      <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">
        <Span>
          <InlineUIContainer>
            <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
          </InlineUIContainer>
        </Span>
        some undesirable text!
        with multiple 
        lines
      </HyperlinkButton>
    </InlineUIContainer>
    
    <InlineUIContainer>
      <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">
        <Span>
          <InlineUIContainer>
            <HyperlinkButton Style="{StaticResource Link}" NavigateUri="someuri">SOME TEXT</HyperlinkButton> 
          </InlineUIContainer>
        </Span>
      </HyperlinkButton>
    </InlineUIContainer>
    
    
    一些文本
    
    您好,谢谢,但它似乎没有删除它:(而且\s不是一个有效的转义序列:(因为这是在Windows平台上,所以您使用的是.net正则表达式引擎吗?您是否使用触发
    s
    选项来匹配新行字符?