1

嗨,我有一个这样的 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 内容,但我无法控制字符串生成我只接收字符串,因此您可以在片段中看到我需要删除不需要的文本,因为 HyperLinkBut​​ton 不能有两个内容。

所以我需要两件事之一:

  1. 移除不需要的外部 HyperLinkBut​​ton 或
  2. 删除示例中不需要的文本

有人可以帮助我使用正则表达式或其他东西来实现这一目标吗?

谢谢!

4

1 回答 1

0

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

正则表达式:(<\/Span>[\s\r\n]*)(^.*[\r\n]*)(?=\s*<\/HyperlinkButton>[\s\r\n]*<\/InlineUIContainer>)

用。。。来代替:$1

在此处输入图像描述

例子

现场工作示例:http ://regexr.com?35efl

示例文本

<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>
于 2013-06-30T20:56:30.667 回答